|
|
|||||
Регистрация: Jul 2006
Сообщений: 51
|
Перпендикуляр к вектору
Есть вектор:
Есть объект: Как мне построить перпендикуляр от объекта к вектору? |
|
|||||
strange mood
|
Вектор проходит через точки (x1, y1), (x2, y2)
Вектор лежит на прямой y = kx + b Перпендикуляр к этой прямой y = (-1/k)x + с Перпендикуляр проходит через точку (objX, objY) Берем бумажку, составляем систему уравнений, выражаем k и c через координаты вектора и объекта, и прописываем полученные формулы в коде.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
экзотическое применение Bezier, из пушки по воробьям, такскть
хотя если класс уже 'в деле', то почему бы и нет var start:Point = new Point(0, 0); var end:Point = new Point(300, 200); var control:Point = new Point(0.5 * (start.x + end.x), 0.5 * (start.y + end.y) + 1e-9); var bezier:Bezier = new Bezier(start, control, end); bezier.isSegment = false; var p:Point = new Point(end.x * Math.random(), end.y * Math.random()); var normal:Point = bezier.getPoint(bezier.getClosest(p)); graphics.lineStyle(0, 0x0); graphics.moveTo(start.x, start.y); graphics.lineTo(end.x, end.y); graphics.lineStyle(0, 0xFF0000); graphics.moveTo(p.x, p.y); graphics.lineTo(normal.x, normal.y); |
|
|||||
Регистрация: Dec 2006
Сообщений: 230
|
Шоб проверить перпендикулярность векторов, нужно померять их дот-продукт на равенство нулю. Если равен, то перпендикулярен один вектор другому. То бишь, является нормалью.
|
Часовой пояс GMT +4, время: 01:47. |
|
« Предыдущая тема | Следующая тема » |
|
|