Добрый день всем.
Я делаю простой скрипт на PHP, у меня проблемы с простой геометрической проблемой:
У меня 2d матрица, ширина = 10000 и ее высота = 6000.
У меня есть 2 очка, A (2000, 1000) и B (3400, 5000).
То, что я хотел бы рассчитать, это третья точка на расстоянии 1500 от (скажем) A, на той же линии.
Я работал с простой функцией линии:
$x1= 2000;
$y1= 1000;
$x2= 3400;
$y2= 5000;
$x = 1500;
function givemeY($x1,$y1,$x2,$y2,$x){
return ($y2-$y1)/($x2-$x1)*($x-$x1)+$y1;
}
но это работает, только если я дам ему хотя бы $ x, но я не знаю $ x, я бы хотел, чтобы в этом случае была только точка 1500, (2000, 1000). (Я подозреваю, что в этом примере точка будет иметь отрицательные значения, это нормально).
Я не знаю PHP, но это должно быть довольно легко реализовать с помощью некоторого псевдокода:
function getXComponent(angleOfLine){
return Math.cos(angleOfLine)*1500;
}
и для компонента у
function getYComponent(angleOfLine){
return Math.sin(angleOfLine)*1500;
}
Теперь просто используйте компоненты X и Y, чтобы разместить новую точку.
Других решений пока нет …