internal void DrawFrame(Point2[] pixels, DataForMap2D data, Bitmap bmp, int step = 0) { switch (Projection) { case Projection.Healpix: data.Draw(bmp, 0, pixels, YResolution); break; case Projection.Healpix2Equirectangular: case Projection.Equirectangular: foreach (var pixel in pixels) { var coor = Equirectangular.CoorFromXY(pixel, YResolution, HealpixManager, step); double?altitude; if (Projection == Projection.Healpix2Equirectangular) { var deltas = data.ApproxMan.GetDeltas(coor); altitude = data.ApproxMan.GetMeanAltitude(deltas); data.CheckMaxMin(altitude); } else { altitude = data.GetAltitude(new HealCoor(coor)); } if (altitude.HasValue) { data.Colors.SetPixelOnBmp(altitude.Value, bmp, pixel, Scale); } } break; } }
private void DrawFrames(Point2[] pixels, DataForMap2D data) { string bitmap = null; for (var step = 0; step < Frames; step++) { var bmp = CreateBitmap(); DrawFrame(pixels, data, bmp, step); DrawLegend(data, bmp); bitmap = SaveBitmap(bmp, data.Colors, data.Accuracy, step); } Process.Start(bitmap); }