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);
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Dremuk
@Dremuk
В C# символ ^ - это не возведение в степень. Для степени нужен pow.
^ - это не степень. Это XOR
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Вам расстояние нужно между точками, которые заданы координатами?
Дожили... Учебник геометрии проштудируйте.

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

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

Войти через центр авторизации
Похожие вопросы
GD Company Санкт-Петербург
от 120 000 до 150 000 ₽
Mystery Tag Новосибирск
от 80 000 до 110 000 ₽
SoftAge Новосибирск
от 130 000 до 150 000 ₽