Exemplo n.º 1
0
        private Bitmap DrawTangentAndNormal(float t)
        {
            tangentAndNormal = true;

            Bitmap   bmp      = new Bitmap(onlyTractrix);
            Graphics graphics = Graphics.FromImage(bmp);

            if (t != 90)
            {
                List <PointF> points      = curve.TangentLine(t);
                PointF        TangentText = curve.Tangent(curve.FindPoint(t).X - 20, t);
                PointF        NormalText  = curve.Normal(curve.FindPoint(t).X - 20, t);
                graphics.DrawString("Tangent", new Font("Calibri", 10), Brushes.Turquoise, viewport.FactToLogic(TangentText));
                graphics.DrawString("Normal", new Font("Calibri", 10), Brushes.Orange, viewport.FactToLogic(NormalText));


                graphics.DrawLine(new Pen(Color.Turquoise, 1), viewport.FactToLogic(points[0]), viewport.FactToLogic(points[1]));

                points = curve.NormalLine(t);
                graphics.DrawLine(new Pen(Color.Orange, 1), viewport.FactToLogic(points[0]), viewport.FactToLogic(points[1]));
                PointF p = viewport.FactToLogic(curve.Tangent(curve.FindPoint(t).X, t));
                int    s = 3;
                graphics.DrawEllipse(new Pen(Color.Red, 1), p.X - s, p.Y - s, s * 2, s * 2);
            }
            return(bmp);
        }