Нарисовать параллельную линию в WinFormsC#

Место общения программистов C#
Ответить
Anonymous
 Нарисовать параллельную линию в WinForms

Сообщение Anonymous »

Мне нужно нарисовать параллельную линию на основе исходной, вот так.
[img]https://i.sstatic .net/J6FfjZ2C.png[/img]

Я использую этот код

Код: Выделить всё

 const int shift = 10;
PointF[] clonedPoints = new PointF[polygon.Count];
float dx = polygon[1].X - polygon[0].X;
float dy = polygon[1].Y - polygon[0].Y;

for (int i = 0; i < polygon.Count; i++)
{
var k = (float)Math.Atan2(dx / 100, dy / 100);
float x = polygon[i].X + k + shift;
float y = polygon[i].Y + k + shift;
clonedPoints[i] = new PointF(x, y);
}
И я получаю такие строки.
[img]https://i.sstatic. net/M6m4PrHp.png[/img]

Синий — клонированный.
Поэтому я попробовал поиграть с некоторым коэффициентом k и Shift, но это не помогает получить «параллельные» точки для их рисования.

Подробнее здесь: https://stackoverflow.com/questions/785 ... n-winforms
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»