public void Basin() { Data = new BasinData(HealpixManager, false, false // , -7000d ) { NoIntegrationFinish = true, //Visual = basin => basin.WaterHeight }; var p = HealpixManager.GetP(HealpixManager.Nside - 1, HealpixManager.Nside * 1); var basin = Data.PixMan.Pixels[p]; basin.Depth = -500; basin.hOQ = 10000; var framesCountBy2 = 300; Data.Cycle(delegate(int step) { Data.Draw(Bmp, 0, null, YResolution, Scale); SaveBitmap(step); return(1); }, framesCountBy2); }
public void AxisChange_Slow() { Data = new BasinData(HealpixManager, true, false //, -2000d, 2000d, true ) { NoIntegrationFinish = true, }; ChangeAxis( 17, 500, step => { switch (K) { case 7: return(15 + step / 10); } return(15); }, true, () => { switch (K) { case 7: return(60); } return(10); }); }
public void Hto_Spheric() { Data = new BasinData(new HealpixManager(2), false, true); Data.GradientAndHeightCrosses(); InitiialHtoRecalc(); var basin0 = Data.PixMan.Pixels[0]; // 44 44 40 40 //Assert.AreEqual(644, basin0.InitialHto[0] / 10000, 1); Assert.AreEqual(0, basin0.RadiusLine.Direction.AngleTo(basin0.S_q.Normal).Degrees); var basin5 = Data.PixMan.Pixels[5]; // 5,7: 46 42 40 43 // 14,17: 47 41 40 45 // 27,31: 47 41 42 42 ChangeRotation(-HealpixManager.Nside, double.MaxValue); Assert.AreEqual(0, basin0.Hto[0]); //Data.GradientAndHeightCrosses(); Assert.AreEqual(0, basin0.Hto[0]); BasinDataTests.Cycle(Data); }
public void Water_Gradient() { Data = new BasinData(HealpixManager, false, false //true for sphere , -200d //, 2000d ); var p = HealpixManager.GetP(HealpixManager.Nside - 1, HealpixManager.Nside * 1); var basin = Data.PixMan.Pixels[p]; basin.Delta_g_meridian = -.2; p = HealpixManager.GetP(HealpixManager.Nside * 2, HealpixManager.Nside * 2); Data.PixMan.Pixels[p].Delta_g_meridian = .2; p = HealpixManager.GetP(HealpixManager.Nside * 3, HealpixManager.Nside * 2); Data.PixMan.Pixels[p].Delta_g_meridian = .2; p = HealpixManager.GetP(HealpixManager.Nside + 5, HealpixManager.Nside * 2); Data.PixMan.Pixels[p].Delta_g_traverse = .2; var framesCountBy2 = 15; Data.Cycle(delegate(int step) { Data.Draw(Bmp, 0, null, YResolution, Scale); Circle(basin); SaveBitmap(step); return(1); }, framesCountBy2); }
public void AxisChange_Sharp() { Data = new BasinData(HealpixManager, true, false //, -6000d, null //, -1000d, 5000d, true ) { NoIntegrationFinish = true, }; ChangeAxis(); }
public void Water_ChangeAxis() { Data = new BasinData(HealpixManager, false, false //, -2600d, 2700d ) { /*SamePolesAndEquatorGravitation = true, * NoIntegrationFinish = true, * Visual = basin => basin.r - Earth2014Manager.Radius2Add //*/ }; ChangeAxis(); // 45, 90 }
public void RotationStopped() { Data = new BasinData(HealpixManager, true, false //, -6000d, null , -1000d, 5000d, true ) { SamePolesAndEquatorGravitation = true, NoIntegrationFinish = true, //Visual = basin => basin.Depth.Value //Visual = basin => basin.r - Earth2014Manager.Radius2Add //*/ }; // 1000 does nothing when !SamePolesAndEquatorGravitation if (Data.SamePolesAndEquatorGravitation) { ChangeRotation(-1 - HealpixManager.Nside, -2000); } var changeSteps = 15; var framesCountBy2 = 500; Data.Cycle(delegate(int step) //20 for k5 { if (step % changeSteps == 0) { double koef; if (step == framesCountBy2 / 3) { koef = double.MaxValue; } else if ((step / changeSteps) % 3 == 3 - 1) { koef = 10000; } else { koef = (K < 8 ? (-100 + step / changeSteps * (Data.SamePolesAndEquatorGravitation ? 100 : 2000)) : 500); } ChangeRotation(step - HealpixManager.Nside, koef); } Data.Draw(Bmp, 0, null, YResolution, Scale); SaveBitmap(step); return(1 + step / 50 * 10); }, framesCountBy2); }
public void Water_RotationStopped() { Data = new BasinData(HealpixManager, false, false // ,-3000d, 3000d ); //Data.ColorsMiddle = null; ChangeRotation(-HealpixManager.Nside, double.MaxValue); var framesCountBy2 = 200; Data.Cycle(delegate(int step) { Data.Draw(Bmp, 0, null, YResolution, Scale); SaveBitmap(step); return(1); }, framesCountBy2); }
public void Water_HighBasin() { Data = new BasinData(HealpixManager, false, true //true for sphere , -20d //, 200d ); var h = 500d; var p = HealpixManager.GetP(HealpixManager.Nside + 5, HealpixManager.Nside * 2); var basin3 = Data.PixMan.Pixels[p]; basin3.hOQ = h; Data.PixMan.Pixels[HealpixManager .GetP(HealpixManager.Nside, (int)(HealpixManager.Nside * 2.5))].hOQ = h; var framesCountBy2 = 10; Data.Cycle(delegate(int step) { Data.Draw(Bmp, 0, null, YResolution, Scale); Circle(basin3); SaveBitmap(step); return(1); //240 for k8, 150 for k7, 100 for k6 }, framesCountBy2); }