public void AnyModificationofGetAltitude() { Data = new MeridianWater <MeridianCoorFast>(HealpixManager); Data.Cycle(delegate(int step) { Data.Draw(Bmp, step); return(1); }); }
public void Water_RotationStopping() { Data = new MeridianWater <MeridianCoor>(HealpixManager); //-3690d, 4185d); Data.Cycle(delegate(int step) { Data.Draw(Bmp, step); if (step % HealpixManager.Nside / 4 == 0) //(îò 23,9 ÷àñîâ äî 26,7), è â ñåðåäèíå âðåìåíè äî 46,2 ÷àñîâ { ChangeRotation(step); } return(110); // 1100 for k9 }); }
public void HighLowBasin() { var h = 500d; Data = new MeridianWater <MeridianCoor>(HealpixManager, -h, h); Data.PixMan.Pixels[HealpixManager.RingsCount / 4 + 1].hOQ = -h; Data.PixMan.Pixels[HealpixManager.RingsCount / 4 + 2].hOQ = -h; Data.PixMan.Pixels[HealpixManager.RingsCount * 3 / 4 + 1].hOQ = h; Data.PixMan.Pixels[HealpixManager.RingsCount * 3 / 4 + 2].hOQ = h; Data.ColorsMiddle = 50; Data.Cycle(delegate(int step) { Data.Draw(Bmp, step); return(1); }); }
public void Water_RotationStopped() { Data = new MeridianWater <MeridianCoor>(HealpixManager); //-5032d, 5685d);//integration not finished on 500, run again! ChangeRotation(-HealpixManager.Nside, double.MaxValue); // Ellipsoid.SiderealDayInSeconds*1000); //must be 10.69km // for k5 is 10.94, k6 10.93, k7 10.9, k8 10.72 Data.Cycle(delegate(int step) { Data.Draw(Bmp, step); var times = 0; if (step - times < -HealpixManager.Nside) //// how many times to call ChangeRotation at the beginning { ChangeRotation(step, 80000); } return(700); // 700 for k7 }); }
private MeridianWater <MeridianCoor> GetData( bool fullMeridian = false, bool excite = false, BottomForm bottomForm = BottomForm.No) { var man = new HealpixManager(9); //2 is good too northBasin = man.GetCenter <MeridianCoor>(0); basin = man.GetCenter <MeridianCoor>(4); southBasin = man.GetCenter <MeridianCoor>(12); var pix = fullMeridian // -.=.=.- ? new[] { northBasin, basin, southBasin } // -.=.- : new[] { northBasin, basin }; var data = new MeridianWater <MeridianCoor>(man, pix, false); data.GradientAndHeightCrosses(); if (excite) { //data.Water.Move() basin.hOQ = HeightExcitement; data.GradientAndHeightCrosses(); } switch (bottomForm) { case BottomForm.Shallow: foreach (var t in pix) { t.Depth = 0; } break; case BottomForm.InDepth: foreach (var t in pix) { t.Depth = HeightExcitement; } break; case BottomForm.BasinExcited: foreach (var t in pix) { t.Depth = t == basin ? -HeightExcitement : HeightExcitement; } break; case BottomForm.BasinInDepth: foreach (var t in pix) { t.Depth = t == basin ? HeightExcitement : 0; } break; case BottomForm.ShallowSouth: foreach (var t in pix) { t.Depth = t == southBasin ? 0 : HeightExcitement; } break; case BottomForm.NorthBasinInDepth: northBasin.Depth = HeightExcitement; basin.Depth = -HeightExcitement; southBasin.Depth = 0; break; case BottomForm.ReliefLikeWater: foreach (var t in pix) { t.Depth = (int)-t.hOQ; } break; } return(data); }