guest_default
@guest_default
)))

Теорема пифагора. В чём моя ошибка?

Пытаюсь определить координаты до игрока. Игра позволяет мне узнать координаты до игрока по Х и по У.
Поэтому, получив их (они вроде во float), я перевожу их в int, мне точности +-1 блок - достаточно.
Получаю так: (Свои координаты минус Координаты игрока) и всё это по модулю, сначала для Х, потом для У.
Столкнулся с проблемой - не могу высчитать по т.Пифагора так называемую Z (т.е корень из Х квадрат + У квадрат). Выдаёт неверное число.
Z мне необходима чтоб я мог точно определить положение до пользователя. Чек скрины.
5e6fcbae7ff18819029033.png
5e6fcbcfe26d3632143087.png
Код:
double y = Math.Abs((int)Main.player[Main.myPlayer].position.Y / 16 - (int)Main.player[i].position.Y / 16);
double x = Math.Abs((int)Main.player[Main.myPlayer].position.X / 16 - (int)Main.player[i].position.X / 16);
double z = Math.Sqrt((int)x ^ 2 + (int)y ^ 2);
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Вам расстояние нужно между точками, которые заданы координатами?
Дожили... Учебник геометрии проштудируйте.

Гуглить расстояние между точками в декартовой системе координат.
По факту:
корень квадратный из суммы квадратов разниц соответствующих координат
мнемонически: sqrt((x2-x1)^2 + (y2-y1)^2)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы