Beispiel #1
0
        void InitialData()
        {
            Beeline beeline = new Beeline();

            beeline.lineBase.Color = Color.red;
            beeline.lineBase.Width = 2;
            beeline.Start.x        = -100;
            beeline.End.x          = 100;
            beeline.End.y          = 100;

            ArcLine arc = new ArcLine();

            arc.Closed         = true;
            arc.lineBase.Color = Color.green;
            arc.lineBase.Width = 2;
            arc.Pos            = new Vector2(0, 220);
            arc.Scale          = new Vector2(1, 0.6f);
            arc.Dic            = 44;
            arc.Angle          = 160;
            arc.Precision      = 0.05f;
            arc.Radius         = 300;

            BzierLine bzier = new BzierLine();

            bzier.lineBase.Color = Color.blue;
            bzier.lineBase.Width = 2;
            bzier.A         = new Vector2(-11, -22);
            bzier.B         = new Vector2(0, -220);
            bzier.C         = new Vector2(100, 46);
            bzier.Precision = 0.04f;

            view.Line.AddLine(ref beeline);
            view.Line.AddLine(ref arc);
            view.Line.AddLine(ref bzier);
        }
Beispiel #2
0
 /// <summary>
 /// 添加一条贝塞尔曲线
 /// </summary>
 /// <param name="line"></param>
 public void AddLine(ref BzierLine line)
 {
     if (bzierLines == null)
     {
         bzierLines = new List <BzierLine>();
     }
     if (line.Precision <= 0)
     {
         line.Precision = 0.01f;
     }
     bzierLines.Add(line);
     m_dirty = true;
 }
Beispiel #3
0
        void CreateBzier(ref BzierLine line)
        {
            int     Part = (int)(1 / line.Precision);
            float   t    = line.Precision;
            Vector2 s    = line.A;

            for (int i = 0; i < Part; i++)
            {
                var e = MathH.BezierPoint(t, ref line.A, ref line.B, ref line.C);
                CreateVert(ref s, ref e, ref vertInfo, ref trisInfo, ref line.lineBase.Color, line.lineBase.Width);
                s  = e;
                t += line.Precision;
            }
            CreateVert(ref s, ref line.C, ref vertInfo, ref trisInfo, ref line.lineBase.Color, line.lineBase.Width);
        }