Сейчас 10:21:28 Суббота, 23 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Расстояние между юнитами
rixt7956Дата: Суббота, 27 Ноября 2010, 22:52:04 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Мне надо определить расстояние между юнитами на кординатах
Code
set dist = bj_RADTODEG *Atan2(GetUnitY(u[2]) - GetUnitY(u[1]),GetUnitX(u[2]) - GetUnitX(u[1]))

Но я хотел проверить точность данной функции и увидил что цифры получаються с минусом.Это так должно быть или я допустил ошибку?

Ответ нашёл
Code
local unit array u
local real dx = GetUnitX(u[1]) - GetUnitX(u[2])
local real dy = GetUnitY(u[1]) - GetUnitY(u[2])
loca real dist = dx*dx+dy*dy
Тему можно закрыть


Сообщение отредактировал rixt7956 - Воскресенье, 28 Ноября 2010, 18:49:06
 

DarkVaderДата: Суббота, 27 Ноября 2010, 22:58:12 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
Quote (rixt7956)
set dist = bj_RADTODEG *Atan2(GetUnitY(u[2]) - GetUnitY(u[1]),GetUnitX(u[2]) - GetUnitX(u[1]))

вообще это как бэ ты угол считаешь, а рассояние считается по формуле длинны вектора

а отрицательные значания получаются, это правильно так и должно быть

 

rixt7956Дата: Суббота, 27 Ноября 2010, 23:00:48 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Дай формулу тогда как посчитать расстояние =)
 

Banzay89Дата: Суббота, 27 Ноября 2010, 23:05:40 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
SquareRoot((x1-x)*(x1-x)+(y1-y)*(y1-y)) - расстояние между точками
 

rixt7956Дата: Суббота, 27 Ноября 2010, 23:08:50 | Сообщение # 5
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
спс, когда зайду с компа всем дам плюс
 

DarkVaderДата: Суббота, 27 Ноября 2010, 23:34:24 | Сообщение # 6
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
Quote (Banzay89)
SquareRoot((x1-x)*(x1-x)+(y1-y)*(y1-y))

хочу добавить что направление вектора здесь не имеет значения, х1, у1 - может быть как координатами начала так и конца. ну а х,у соответственно

 

rixt7956Дата: Суббота, 27 Ноября 2010, 23:44:20 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Я уже понял =)
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz