2d матрица, задано 2 точки, найти третью на определенном расстоянии, PHP

#php #multidimensional-array #geometry #2d

#php #многомерный массив #геометрия #2d

Вопрос:

Всем доброго времени суток. Я делаю простой скрипт на 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). (Я подозреваю, что в этом примере точка будет иметь отрицательные значения, все в порядке).

Ответ №1:

Я не знаю PHP, но это должно быть довольно легко реализовать с помощью некоторого псевдокода:

 function getXComponent(angleOfLine){
    return Math.cos(angleOfLine)*1500;
}
  

и для компонента y

 function getYComponent(angleOfLine){
    return Math.sin(angleOfLine)*1500;
}
  

Теперь просто используйте компоненты X и y для размещения новой точки.