В основном мне нужно вычислить расстояние между точкой и линией (на которой есть две известные координаты) по оси XY. Я получил алгоритм, но не знаю, как реализовать его в ObjC.
Иллюстрация: у меня есть линия, которая проходит через две точки A (100,300) и B (200,100)
m = (y-y1) / x (x-x1) = 300-100 / 100 -200 = -2
так:
-2 (x-x1) = (y-y1)
Замените x и y:
-2 (100-x1) = 200 - y1 <=> -2x + y - 500 = 0 (линейное уравнение, которое проходит выше 2 точек)
И используйте другую формулу для расчета расстояния:
ax + by + c / sqrt (a ^ 2 + b ^ 2)
Заменить x и y точки, которую я хочу вычислить для расстояния C (10,20)
-2 * 1000 + 2000 - 500 / sqrt (100 + 400) = расстояние, которое я хочу найти
Все просто, но как мне это сделать в ObjC?
Окей, это в основном то, что я сделал, и не знаю, как продолжить:
float coordinateXStart;
float coordinateYStart;
float coordinateXEnd;
float coordinateYEnd;
coordinateXStart = [[strokesArray objectAtIndex:strokeNo] startX];
coordinateYStart = [[strokesArray objectAtIndex:strokeNo] startY];
coordinateXEnd = [[strokesArray objectAtIndex:strokeNo] endX];
coordinateYEnd = [[strokesArray objectAtIndex:strokeNo] endY];
//let's rock on distance formula from point to line
float m = (coordinateYEnd-coordinateYStart)/(coordinateXEnd-coordinateXStart);
enter code here
Блокцитата Окей, так что у меня было м .... но как автоматизировать вычисление а, б и с топора + на + с уравнения линии?