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

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

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

1 ответ1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .