Рисование перпендикулярных линий между двумя путями
Я архитектор, работающий на древних объектах архитектурной документации. Сейчас я пытаюсь сделать олдскульный ландшафтный рисунок, который включает кривые высоты. (Линии контура)
Поэтому для этого я пытаюсь нарисовать перпендикулярные линии, расположенные вдоль одной линии, начиная с нее и заканчивая следующей. что, мне нужно сделать это по крайней мере 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
Это более или менее так)