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, но это не помогает получить «параллельные» точки для их рисования.
Мне нужно нарисовать параллельную линию на основе исходной, вот так. [img]https://i.sstatic .net/J6FfjZ2C.png[/img]
Я использую этот код [code] 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); } [/code] И я получаю такие строки. [img]https://i.sstatic. net/M6m4PrHp.png[/img]
Синий — клонированный. Поэтому я попробовал поиграть с некоторым коэффициентом k и Shift, но это не помогает получить «параллельные» точки для их рисования.