Цитата:
|
y = x*tg(a) + b, где a - угол между осью Ох и прямой, b - точка пересечения прямой и оси Ох
|
точка пересечения двух прямых:
х = (b1 - b2) / (tg(a2) - tg(a1))
y = (b1*tg(a2) - b2*tg(a1)) / (tg(a2) - tg(a1))
Но т.к. это точка пересечения двух прямых, а не лучей (помним в чем разница, да?) то надо проверить принадлженость этой точки каждому из лучей.
Добавлено через 1 минуту
А, да, перед вычислениями было бы еще неплохо проверить что а1 != а2, иначе деление на ноль возникнет (прямые/лучи параллельны)
Добавлено через 26 минут
Цитата:
Возможно надо представить b через искомую точку?
b1 = y0 - x0*tg(a1)
b2 = y0 - x0*tg(a2)
|
Эта точка - место пересечения прямой и оси
Ох, у нее всегда
у = 0
Добавлено через 45 минут

Код AS3:
package
{
import flash.geom.Point;
/**
* ...
* @author Ookami
*/
public class Ololo
{
public function findPoint(point1:Point, point2:Point, angle1:Number, angle2:Number):Point
{
var x:Number;
var y:Number;
var k1:Number = Math.tan(toRadians(angle1));
var k2:Number = Math.tan(toRadians(angle2));
if (angle1 == angle2)
{
trace("Прямые параллельны");
return null;
} else {
x = (point1.x - point2.x) / (k2 - k1);
y = (point1.x * k2 - point2.x * k1) / (k2 - k1);
trace("Прямые пересекаются в точке [" + x + ";" + y + "]");
return new Point(x, y);
}
}
private function toRadians(degrees:Number):Number
{
return degrees * (Math.PI / 180);
}
}
}
В данном коде нет проверки на принадлежность найденной точки заданным лучам - это Вам остается как домашнее задание )