Требования к программе
Программа должна предусматривать следующие возможности:
1. Автоматическое построение кривой Безье заданной степени:
1.1. Начинать построение из центра Canvas.
2. Ввод входных данных вручную через поля на форме.
3. Предусмотреть возможность некорректного ввода данных.
4. Предусмотреть возможность пошагового отображения построения кривой Безье.
5. Предусмотреть расчет размеров кривой в соответствии с размерами Canvas, чтобы границы кривой не вышли за пределы Canvas.
Цель
Создать редактор кривой Безье, который позволяет отобразить кривую Безье по традиционным формулам, ввода и редактирования характеристических многоугольников кривых Безье через диалоговое окно; изменение кривизны кривой Безье.
Другие языки программирования и технологии
Нужен исходник Кривой Безье на С# Visual studio
>Нужен исходник Кривой Безье на С#
Да пожалуйста (до 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;
}
}
}
Да пожалуйста (до 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;
}
}
}
Ты скорее помрёшь! От тупости...
Похожие вопросы
- Здравствуйте товарищи программисты хотел спросить. VIsual studio 2022 или Visual Studio Code
- Зачем нужен Visual Studio Code?
- Подскажите с чего начать изучение Visual Studio ???(ещё вопросы в метках...)
- кривые Безье и геометрия
- Visual Studio или MASM
- MS Visual Studio+русские переменные
- Visual studio c++ помогите пожалуста!!!
- помогите сделать задание в Microsoft Visual Studio
- Visual Studio C++, ошибка : "не удается найти указанный файл"
- Можно ли доверять Оптимизаторам кода??? Visual Studio 2013
{
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)),
ошибка инициализатор не может обращаться к нестатическому полу или методу обьекта
https://pastebin.com/ze6xNC3Q