Beispiel #1
0
 public BezierCurve(BindingList <Vector2> vectors, Color Color, string name = "Krzywa beziera") : base(vectors, Color, name ?? "Krzywa beziera")
 {
     if (PointsToDraw == null && vectors != null)
     {
         PointsToDraw = DeCasteljau.drawCasteljau(Util.Vector2toPoints(Vectors));
     }
 }
Beispiel #2
0
        private void elevateButton_Click(object sender, EventArgs e)
        {
            List <Vector2> newPoints = DeCasteljau.ElevateDegree(Curves[SelectedCurve].Vectors);

            Curves[SelectedCurve].Vectors.ListChanged -= Curves[SelectedCurve].VectorsListChangedEvent;
            Curves[SelectedCurve].Vectors.Clear();
            foreach (Vector2 point in newPoints)
            {
                Curves[SelectedCurve].Vectors.Add(point);
            }
            Curves[SelectedCurve].Vectors.ListChanged += Curves[SelectedCurve].VectorsListChangedEvent;
            Draw();
        }
Beispiel #3
0
        private void decreaseButton_Click(object sender, EventArgs e)
        {
            if (Curves[SelectedCurve].Vectors.Count < 4)
            {
                errorBox.Text = "Krzywa musi mieć co najmniej 4 punkty kontrolne";
                return;
            }
            List <Vector2> newPoints = DeCasteljau.DecreaseDegree(Curves[SelectedCurve].Vectors);

            Curves[SelectedCurve].Vectors.ListChanged -= Curves[SelectedCurve].VectorsListChangedEvent;
            Curves[SelectedCurve].Vectors.Clear();
            foreach (Vector2 point in newPoints)
            {
                Curves[SelectedCurve].Vectors.Add(point);
            }
            Curves[SelectedCurve].Vectors.ListChanged += Curves[SelectedCurve].VectorsListChangedEvent;
            Draw();
        }
Beispiel #4
0
        internal override Tuple <CurveAbstract, CurveAbstract> Split(string splitValue)
        {
            float u = float.Parse(splitValue);

            return(DeCasteljau.SplitBezier(this, u));
        }
Beispiel #5
0
 public override void VectorsListChangedEvent(object sender, ListChangedEventArgs e)
 {
     PointsToDraw = DeCasteljau.drawCasteljau(Util.Vector2toPoints(Vectors));
 }