Beispiel #1
0
 private void lineToolStripMenuItem_Click(object sender, EventArgs e)
 {
     curves[choosencurve].accept(this);
     if (curves[choosencurve] is Bezier)      //!!!
     {
         special_points.Remove(somePoints[1]);
         special_points.Remove(somePoints[2]);
         curves[choosencurve] = new Line(somePoints[0], somePoints[3]);
     }
     CurveMenuStrip.Close();
     somePoints   = null;
     choosencurve = -1;
     Refresh();
 }
Beispiel #2
0
        private void bezierToolStripMenuItem_Click(object sender, EventArgs e)
        {
            double x, y;

            curves[choosencurve].accept(this);
            curves[choosencurve].getPoint(0.3, out x, out y);
            //special_points.Insert(curves.IndexOf(curves[choosencurve]),new Geometry.Point(x, y));
            special_points.Add(new Geometry.Point(x, y));
            curves[choosencurve].getPoint(0.6, out x, out y);
            //special_points.Insert(curves.IndexOf(curves[choosencurve])+1, new Geometry.Point(x, y));
            special_points.Add(new Geometry.Point(x, y));
            curves[choosencurve] = new Bezier(somePoints[0], special_points[special_points.Count - 2], special_points[special_points.Count - 1], somePoints[1]);
            CurveMenuStrip.Close();
            somePoints   = null;
            choosencurve = -1;
            Refresh();
        }
Beispiel #3
0
 // Event section
 private void Form1_MouseClick(object sender, MouseEventArgs e)
 {
     choosencurve = -1;
     if (e.Button == MouseButtons.Left)
     {
         if (IsContain(e) == -1)
         {
             countour_points.Add(new Geometry.Point(e.X, e.Y));
             if (countour_points.Count == 2)
             {
                 curves.Add(new Line(countour_points[0], countour_points[1]));
                 curves.Add(new Line(countour_points[1], countour_points[0]));
             }
             if (countour_points.Count >= 3)
             {
                 //curves.RemoveAt(curves.Count - 1);
                 curves[curves.Count - 1].accept(this);
                 if (somePoints.Length == 2)
                 {
                     curves.RemoveAt(curves.Count - 1);
                     curves.Add(new Line(somePoints[0], countour_points[countour_points.Count - 1]));
                     curves.Add(new Line(countour_points[countour_points.Count - 1], countour_points[0]));
                 }
                 if (somePoints.Length == 4)
                 {
                     curves.RemoveAt(curves.Count - 1);
                     curves.Add(new Bezier(somePoints[0], somePoints[1], somePoints[2], countour_points[countour_points.Count - 1]));
                     curves.Add(new Line(countour_points[countour_points.Count - 1], countour_points[0]));
                 }
             }
         }
     }
     if (e.Button == MouseButtons.Right)
     {
         ICurve choose = curveAreChoosen(e);
         if (choose != null)
         {
             choosencurve = curves.IndexOf(choose);
             CurveMenuStrip.Show(e.X + 50, e.Y + 50);
         }
     }
     Refresh();
 }