Другие языки программирования и технологии

Нужен исходник Кривой Безье на С# Visual studio

Требования к программе
Программа должна предусматривать следующие возможности:
1. Автоматическое построение кривой Безье заданной степени:
      1.1. Начинать построение из центра Canvas.
2. Ввод входных данных вручную через поля на форме.
3. Предусмотреть возможность некорректного ввода данных.
4. Предусмотреть возможность пошагового отображения построения кривой Безье.
5. Предусмотреть расчет размеров кривой в соответствии с размерами Canvas, чтобы границы кривой не вышли за пределы Canvas.

Цель
Создать редактор кривой Безье, который позволяет отобразить кривую Безье по традиционным формулам, ввода и редактирования характеристических многоугольников кривых Безье через диалоговое окно; изменение кривизны кривой Безье.
>Нужен исходник Кривой Безье на С#
Да пожалуйста (до 3-его порядка):

public class Point
{
public double X;
public double Y;

public Point(double _x, double _y)
{
X = _x;
Y = _y;

}

public int IntX(double _Scale)
{
return (int)Math.Round(X * _Scale);
}

public int IntY(double _Scale)
{
return (int)Math.Round(Y * _Scale);
}

public static Point operator +(Point p1, Point p2)
{
return new Point(p1.X + p2.X, p1.Y + p2.Y);
}

public static Point operator *(double d, Point p)
{
return new Point(d * p.X, d * p.Y);
}
}

public class Bezier
{
Point[] P;

public Bezier(Point[] _Points)
{
if (_Points.Length < 2 || _Points.Length > 4)
throw new Exception("Unknown curve type");
P = _Points;
}

private Point Bezier1(double t)
{
return (1 - t) * P[0] + t * P[1];
}

private Point Bezier2(double t)
{
return (1 - t) * (1 - t) * P[0] + 2 * t * (1 - t) * P[1] + t * t * P[2];
}

private Point Bezier3(double t)
{
return (1 - t) * (1 - t) * (1 - t) * P[0] + 3 * t * (1 - t) * (1 - t) * P[1] + 3 * t * t * (1 - t) * P[2] + t * t * t * P[3];
}

public Point GetPoint(double t)
{
switch (P.Length)
{
case 2:
return Bezier1(t);
case 3:
return Bezier2(t);
case 4:
return Bezier3(t);
default:
return null;
}
}
}
Костя Ерёменко
Костя Ерёменко
70 255
Лучший ответ
Саша Филатов PointF[] Arr = new PointF[] // Исходный массив точек
{

new PointF(10,150),
new PointF(5,50),
new PointF(150,50),
new PointF(140,140),
new PointF(150,50),
new PointF(150,50),
new PointF(150,50),

};
Я хочу цифры брать из int(textBox1.tetxt)
например new PointF( int(textBox1.tetxt), int(textBox2.tetxt)),
ошибка инициализатор не может обращаться к нестатическому полу или методу обьекта
Ты скорее помрёшь! От тупости...
Aman Tagaev
Aman Tagaev
59 785