многомерный массив — 2-мерная матрица, 2 заданные точки, найти третью на определенном расстоянии, переполнение стека

Добрый день всем.
Я делаю простой скрипт на 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;
}

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

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

Теперь просто используйте компоненты X и Y, чтобы разместить новую точку.

1

Другие решения

Других решений пока нет …