Example #1
0
        private void DrawBezierCurve()
        {
            this.ContentGrid.Children.Remove(_bezierCanvas);
            _bezierCanvas.Children.Clear();
            BezierPoints.Clear();

            var pointList = new List <Point>();

            for (int i = 0; i <= _insertedPoint; i++)
            {
                pointList.Add(PointList[i].Point);
            }

            DrawCasteljau(pointList);

            for (int i = 0; i < BezierPoints.Count - 1; i++)
            {
                var line = new Line
                {
                    Stroke          = Brushes.Red,
                    StrokeThickness = 1,
                    X1 = BezierPoints[i].X,
                    Y1 = BezierPoints[i].Y,
                    X2 = BezierPoints[i + 1].X,
                    Y2 = BezierPoints[i + 1].Y
                };

                _bezierCanvas.Children.Add(line);
            }

            this.ContentGrid.Children.Add(_bezierCanvas);
        }
        public void Load(EngineNS.IO.XndNode xndNode)
        {
            BezierPoints.Clear();
            var att = xndNode.FindAttrib("_bezierPts");

            if (att != null)
            {
                att.BeginRead();
                switch (att.Version)
                {
                case 0:
                {
                    int count;
                    att.Read(out count);
                    for (int i = 0; i < count; i++)
                    {
                        var bPt = att.ReadMetaObject() as BezierPoint;
                        if (bPt != null)
                        {
                            bPt.CalculateOpposite();
                            BezierPoints.Add(bPt);
                        }
                    }
                    att.Read(out mBezierWidth);
                    att.Read(out mBezierHeight);
                }
                break;
                }
                att.EndRead();
            }
        }
Example #3
0
 public void Clear()
 {
     if (BezierPoints.Count > 0)
     {
         BezierPoints.Clear();
     }
     if (_lstCtrPoints.Count > 0)
     {
         _lstCtrPoints.Clear();
     }
 }