Member 13445937 Ответов: 1

Почему левая сторона и правая сторона похожи?


private void Form1_Paint(отправитель объекта, PaintEventArgs e)
{
для (int m = 0; m < 101; m++)
{
Ручка greenPen = новая ручка(цвет.Зеленый, 3);
Точка point1 = новая точка(400 - m / 2, 200);
Точка point2 = новая точка(500, 100);
Точка point3 = новая точка(600 + m / 2, 200);
Точка point4 = новая точка(500, 300);
Точка point5 = новая точка(400 - m / 2, 200);

Point[] curvePoints = { point1, point2, point3, point4, point5 };

e.графика.DrawCurve(greenPen, curvePoints);
этот.Освежить();
}
}

Что я уже пробовал:

После компиляции, как получить обе стороны похожи на рисунке.

1 Ответов

Рейтинг:
0

OriginalGriff

Во - первых, уберите вызов обновления-он делает недействительной вашу форму, и это вызывает еще одну перекраску!

Во - вторых, если вы хотите, чтобы две стороны были одинаковыми, вам нужно нарисовать две - или, возможно, четыре-кривые, а не только одну.
Кривая-это Безье (или, точнее, кардинальный сплайн, но для большинства приложений вы можете игнорировать разницу), и они сглаживают средние точки, поэтому вы не получите то же самое в верхней, нижней и правой точках, что и в начальной и конечной точках слева. Если вы нарисуете верх и низ отдельно, вы можете получить то, что хотели - я понятия не имею, чего вы на самом деле ожидаете, поэтому я не могу быть точно уверен, что вам нужно.

Кривая Безье - Википедия[^]
Кубический сплайн Эрмита - Википедия[^]