Рисование перпендикулярных линий между двумя путями

Я архитектор, работающий на древних объектах архитектурной документации. Сейчас я пытаюсь сделать олдскульный ландшафтный рисунок, который включает кривые высоты. (Линии контура)

Поэтому для этого я пытаюсь нарисовать перпендикулярные линии, расположенные вдоль одной линии, начиная с нее и заканчивая следующей. что, мне нужно сделать это по крайней мере 750 строк.

Итак, чтобы подвести итог, я хочу заполнить пробел между двумя строками линиями, которые перпендикулярны пути, с которого они начинаются и заканчиваются на следующей.

1 ответ

Если я правильно понял ваш вопрос, вы хотите нарисовать что-то вроде лестницы. Я буду предполагать, что одна из линий имеет уравнение

a x + b y + c = 0

с ненулевым a а также b (Особые случаи a=0 или же b=0 тривиальны). Я также предполагаю, что a^2+b^2=1 (если нет, просто разделите уравнение на 1/sqrt(a^2+b^2)).

Тогда, если есть длина ваших строк Lи координата начальной точки (x0,y0), то координаты других точек, где начинаются перпендикулярные линии

(x_i, y_i) = ( x0 + (b L i)/(N-1), y0 - (a L i)/(N-1) )

где i бежит сюда 0 в N-1, а также N это количество очков, которое вам нужно для вашей лестницы.

Примечание: если точки будут идти в неправильном направлении, используйте противоположный знак

(x_i, y_i) = ( x0 - (b L i)/(N-1), y0 + (a L i)/(N-1) )

После того, как у вас есть точки, где начинаются перпендикулярные линии, параметрические уравнения для каждой перпендикулярной линии

x_i(t) = x_i + a t D, y_i(t) = y_i + b t D

где t изменения от 0 в 1 а также D это расстояние между вашими параллельными линиями.

Примечание: если перпендикулярные линии идут в неправильном направлении, поменяйте знак

x_i(t) = x_i - a t D, y_i(t) = y_i - b t D

Это более или менее так)

Другие вопросы по тегам