|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
нарисовать две перпендикулярных прямых
требуется нарисовать две прямых пересекающихся под прямым углом. как это лучше сделать, чтобы не на глаз. в дальнейшем ожидается что они будут двигаться по окружности. во вложении изображено как это должно приблизительно выглядеть
|
#2
|
||||
|
||||
Открываем учебник школьной геометрии, видим там формулу тангенса угла между прямыми в зависимости от коэффициентов tgA = (k2-k1)/(1+k1/k2), вспоминаем, чему равен тангенс прямого угла, понимаем, что для этого надо в знаменателе заиметь 0, решаем уравнение k1=-1/k2, радуемся результату.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
Цитата:
пробовал. вот только она у меня от вертикальной оси строить пытается. и математика это одно. а как это програмно описать |
#4
|
||||
|
||||
Значит некорректный алгоритм построения. k есть тангенс угла от горизонтальной оси.
А вообще алгоритм элементарен: Код:
y1 := k*x1+b; y2 := k*x2+b; Canvas.MoveTo(x1,y1); Canvas.LineTo(x2,y2); Код:
k2 := -1/k1; И строим как выше. З.Ы. Прибавка, на всякий случай. На форме ось Y направлена вниз. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 12.12.2011 в 21:33. |
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Если ты уж можешь первую линию поворачивать, то что мешает также после поворота первой поворачивать вторую вокруг новой точки (угол первой-90 градусов), по умолчанию ставив вторую линию сначала на 0 градуссов?
|