![]() |
Пересечение двух лучей по заданным углам
Подскажите пожалуйста, как найти координату точки пересечения двух лучей (даны две точки) если известны их углы наклона?
|
Уравнение прямой -
ax + c = y. a - тангенс угла наклона. Пересечение происходит когда x0=x1, y0=y1. 2 уравнение прямых, 2 неизвестных. a1 * x + c1 = y a2 * x + c2 = y Где a1,a2,c1,c2 - Вам известны. Удачи! |
a1,a2,c1,c2 - их тоже нужно найти?
|
У вас условие не понятное. Что за 2 точки даны?
|
Есть два луча, оба определяются одной точкой и углом поворота этого луча,
нужно найти координату пересечения этих лучей. |
Цитата:
Цитата:
|
а какое отношение данный топ имеет к ActionScripts3? Чистой воды геометрия.
|
Цитата:
|
Тангенс меня в формуле засмущал... полез на
x*cos(a) + y*sin(a)=p, где р - перпендикуляр из точки (0,0) к лучу, угол а - угол между осью Ох и прямой р y = x*tg(a) + b, где a - угол между осью Ох и прямой, b - точка пересечения прямой и оси Ох |
не могли бы немного кода?
а то я с пяти часов над этим сижу, у меня уже мозг опух |
прежде чем писать код, надо вывести уравнение для точки пересечения по вашему условию =) За вас это сделать?
Будет уравнение - помогу с кодом, хотя это уже элементарно. Добавлено через 2 минуты Начать код надо с этого, я думаю. Код AS3:
|
Возможно надо представить b через искомую точку?
b1 = y0 - x0*tg(a1) b2 = y0 - x0*tg(a2) И тогда: y1 - x1*tg(a1) = y0 - x0*tg(a1) y2 - x2*tg(a2) = y0 - x0*tg(a2) y1 - y0 = x1*tg(a1) - x0*tg(a1) y1 - y0 = (x1 - x0)*tg(a1) y0 = y1 - (x1 - x0) * tg(a1) y2 - x2*tg(a2) = y1 - (x1 - x0) * tg(a1) - x0 * tg(a2) y2 - x2*tg(a2) = y1 - x1 * tg(a1) - x0 * (tg(a1) - tg(a2)) x0 * (tg(a1) - tg(a2)) = y2 - x2*tg(a2) - y1 + x1 * tg(a1) x0 = (y2 - y1 - x2*tg(a2) + x1*tg(a1))/(tg(a1) - tg(a2)) y0 = y1 - (x1 - x0) * tg(a1) Вроде нигде не ошибся. |
Цитата:
х = (b1 - b2) / (tg(a2) - tg(a1)) y = (b1*tg(a2) - b2*tg(a1)) / (tg(a2) - tg(a1)) Но т.к. это точка пересечения двух прямых, а не лучей (помним в чем разница, да?) то надо проверить принадлженость этой точки каждому из лучей. Добавлено через 1 минуту А, да, перед вычислениями было бы еще неплохо проверить что а1 != а2, иначе деление на ноль возникнет (прямые/лучи параллельны) Добавлено через 26 минут Цитата:
Добавлено через 45 минут Код AS3:
|
в моей задаче лучи всегда пересекаются :D
спасибо! |
еще перед поиском пересечения неплохо проверить лучи на взаимную паралельность. А то при подсчете может случится деление на ноль. Это раз. А уж если это лучи... то даже пре их непаралельности они иногда не могут пересечься. Это тоже надо как-то проверять
|
Цитата:
|
| Часовой пояс GMT +4, время: 23:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.