Количество шагов от одного поля в сетке к другой, ортогонально?
-
14-11-2019 - |
Вопрос
Как вы рассчитать количество «шагов», есть из одного поля к другому в сетке, движущейся ортогонально?
Я реализую систему PathFinding для игры для игры, которую я работаю, и эта простая математическая операция на пути.
Я, вероятно, должен повторно посетить третий класс.Хаха.
Решение
If I understand correctly, I think you just add up the x,y movements necessary. Given two points (x1,y1)
and (x2,y2)
, then the distance (assuming "moving orthogonally" means moving only horizontally and/or vertically) then it is:
abs(x1-x2) + abs(y1-y2)
For example, moving from position (1,1) to (3,4) means moving 2 spaces to the right and 3 spaces up for a total of 5. abs(1-3)+abs(1-4) = 2 + 3 = 5
Другие советы
I do believe this is a matter of simple math.
Surely, you know your starting x / y values, and your ending x / y values. To get the distance between the two, you do this:
dist = sqrt(dx^2 + dy^2 )
Where dx is the difference between the x-coordinates of the points Where dy is the difference between y-coordinates of the points.
So, for example. Lets say co-ordinate A is A(15,20) and co-ordinate B is B(35,5);
dx = 35 - 15 = 20; dy = 20-5 = 15;
Therefore;
dist between AB = sqrt(20^2 + 15^2) = 25.0 units.
Now for your final answer, this depends how many units a "step" is in your program. If a step is 5 units, (25/5) than there is 5 steps needed to get from point A to B.