private FileContentResult RysujMape(int bitMapW, int bitMapH) { Bitmap bitMap = new Bitmap(bitMapW, bitMapH); Graphics g = Graphics.FromImage(bitMap); UstawieniaModel Ustawienia_wykresu = new UstawieniaModel(); WykresModel wykres = DANE; WykresModel wykres2 = new WykresModel(); MapaModel nowy_wykres = new MapaModel(); if (szerokosc_FWHM) { for (int i = 1; i < wykres.Iterator.Count; i++) { wykres2 = wykres.pokaz_wykres_L(i); Ustawienia_wykresu.ustaw(wykres2); nowy_wykres.pokaz_wykres_M(wykres, Ustawienia_wykresu, i - 1, szerokosc_FWHM); } } else { for (int i = 1; i < wykres.Iterator.Count; i++) { wykres2 = wykres.pokaz_wykres_L(i); Ustawienia_wykresu.ustaw(wykres2); nowy_wykres.pokaz_wykres_M(wykres, Ustawienia_wykresu, i - 1, szerokosc_FWHM); } } Ustawienia_wykresu.ustaw(nowy_wykres); nowy_wykres.skaluj(Ustawienia_wykresu); g.Clear(Color.Black); Font f3 = new Font("Arial", 9); g.DrawLine(Pens.White, new Point(60, 40), new Point(60, 840)); g.DrawLine(Pens.White, new Point(60, 840), new Point(860, 840)); for (int i = 0, y = 0, skala_y = 20; i < 41; i++, y += 20, skala_y -= 1) { g.DrawLine(Pens.White, new Point(60, 40 + y), new Point(50, 40 + y)); if (skala_y == 0) { g.DrawString(skala_y.ToString(), f3, Brushes.Silver, 30, 33 + y); } else if (skala_y > 1000) { g.DrawString(skala_y.ToString(), f3, Brushes.Silver, 18, 33 + y); } else { g.DrawString(skala_y.ToString(), f3, Brushes.Silver, 25, 33 + y); } } for (float i = 0, x = 0, skala_x = -20; i < 41; i++, x += 20, skala_x += 1) { g.DrawLine(Pens.White, 60 + x, 840, 60 + x, 850); g.DrawString(skala_x.ToString(), f3, Brushes.Silver, 50 + x, 855); } int marginesX = 60; int marginesY = 80; int bitmapWith = 900; for (int i = 0; i < nowy_wykres.punkty.Count; i++) { Rectangle rect2 = new Rectangle((marginesX) + (int)nowy_wykres.get_x(i), (bitmapWith - marginesY) - (int)nowy_wykres.get_y(i), 20, 20); Brush brush = new SolidBrush(nowy_wykres.get_color(i)); g.FillRectangle(brush, rect2); } MemoryStream memStream = new MemoryStream(); bitMap.Save(memStream, ImageFormat.Png); return(File(memStream.GetBuffer(), "image/png"));; }
private FileContentResult RysujWykresLiniowy(int bitMapW, int bitMapH) { WykresModel wykres = DANE.pokaz_wykres_L(numer_wykresu); FWHM_Model.aproksymacja_gaussa gauss = new FWHM_Model.aproksymacja_gaussa(); UstawieniaModel Ustawienia_wykresu = new UstawieniaModel(); Ustawienia_wykresu.ustaw(wykres); UstawieniaModel.Wykres ustaw = Ustawienia_wykresu.ustawienia[0]; double q = gauss.fitting(wykres, ustaw); wykres.Skaluj(ustaw); string szerokosc = "FWHM =" + q.ToString("0.000") + "[nm]"; string W = "Wykres" + numer_wykresu + "z" + (DANE.Iterator.Count - 1).ToString(); Bitmap bitMap = new Bitmap(bitMapW, bitMapH); Graphics g = Graphics.FromImage(bitMap); g.Clear(Color.Black); Font f3 = new Font("Arial", 9); Font f4 = new Font("Arial", 13); g.RotateTransform(270); g.DrawString("Intensywność PL.", f3, Brushes.White, bitMap.Height * -1 + 150, 4); g.ResetTransform(); g.DrawString(szerokosc, f4, Brushes.Red, 25, 5); g.DrawString(W, f4, Brushes.Red, 700, 5); g.DrawString("Lambda[nm]", f3, Brushes.White, 400, 430); g.DrawLine(Pens.White, new Point(60, 40), new Point(60, 400)); g.DrawLine(Pens.White, new Point(60, 400), new Point(820, 400)); float OD = ustaw.najwieksza_y; float DO = ustaw.najmniejsza_y; float podzialka = ustaw.podzialka_y; for (float y = 0, skala_y = OD; skala_y >= DO - 1; y += 20, skala_y -= podzialka) { g.DrawLine(Pens.White, new Point(60, 40 + (int)y), new Point(50, 40 + (int)y)); if (skala_y == 0) { g.DrawString(((int)skala_y).ToString(), f3, Brushes.Silver, (float)38, 33 + y); } else if (skala_y > 1000) { g.DrawString(((int)skala_y).ToString(), f3, Brushes.Silver, 18, 33 + y); } else { g.DrawString(((int)skala_y).ToString(), f3, Brushes.Silver, 25, 33 + y); } } DO = ustaw.najwieksza_x; OD = ustaw.najmniejsza_x; podzialka = ustaw.podzialka_x; for (float x = 0, skala_x = OD; skala_x <= DO + 1; x += (float)47.55, skala_x += podzialka) { g.DrawLine(Pens.White, 60 + x, 400, 60 + x, 410); g.DrawString(((int)skala_x).ToString(), f3, Brushes.Silver, 50 + x, 415); } for (int i = 0; i < wykres.punkty.Count - 1; i++) { g.DrawLine(Pens.Green, wykres.get_x(i), wykres.get_y(i), wykres.get_x(i + 1), wykres.get_y(i + 1)); } MemoryStream memStream = new MemoryStream(); bitMap.Save(memStream, ImageFormat.Png); return(File(memStream.GetBuffer(), "image/png"));; }