Example #1
0
        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"));;
        }
Example #2
0
        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"));;
        }