XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Определить угол Z меж координатами
Собственно, юзал поиск. Но вот проблему не решил. Пробовал с помощью представления некого треугольника, где с помощью катета и гипотенузы определить угол. Но что-то у меня явно не то :-( код показывать не буду - стыдно :-( Прошу, подкиньте функцию для определения угла Z.
Например, юнит отдает приказ:
...
local unit u = GetTriggerUnit()
local real x1 = GetUnitX(u)
local real y1 = GetUnitY(u)
local real x2 = GetOrderPointX()
local real y2 = GetOrderPointY()
local real az = Определить_угол(x1,y1,x2,y2)
....
Старый 05.09.2013, 13:23
Anufis

offline
Опыт: 6,290
Активность:
tg твоего угла = dist(x1,y1,x2,y2)/|z1-z2|
где dist - расстояние между точками без учета их высоты(просто по иксам и игрекам)
|z1-z2| - модуль разницы
Миниатюры
Кликните на картинку для увеличения
Название:  123.JPG
Просмотров: 14
Размер:  6.2 Кбайт  

Отредактировано Anufis, 05.09.2013 в 13:37.
Старый 05.09.2013, 13:30
leorak

offline
Опыт: 825
Активность:
а че такое угол Z ? ниразу о таком не слышал. опиши хоть или покажи где он находится
Старый 05.09.2013, 13:30
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Anufis, спасибо, сейчас попробую :-)
Старый 05.09.2013, 13:38
Anufis

offline
Опыт: 6,290
Активность:
только это не "угол Z", а что-то типа угла между прямой, через которую проходят точки 1 и 2, и горизонтом
Старый 05.09.2013, 13:39
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Anufis, что то я не понял? я написал нечто:
function AngleZ takes real x1,real y1,real x2,real y2 returns real
    local real z1 = GetZ(x1,y1)//высота грунта
    local real z2 = GetZ(x2,y2)
    local real a = SquareRoot(x2-x1*x2-x1 + y2-y1*y2-y1)/(z1*z1-z2*z2)
        call DisplayTextToPlayer(Player(0),0,0,R2S(a)) //проверка
        return a
endfunction
Старый 05.09.2013, 14:00
Anufis

offline
Опыт: 6,290
Активность:
Anufis:
tg твоего угла
tg - тангенс
Anufis добавил:
Соответственно, чтобы вычислить сам угол, нужно вычислить арктангенс от этого
Bornikkeny:
local real a = SquareRoot(x2-x1*x2-x1 + y2-y1*y2-y1)/(z1*z1-z2*z2)
Если не ошибаюсь, то это atan (пусть более знающие подскажут)
И результат он возвращает в радианах.
Старый 05.09.2013, 15:14
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Anufis, блин, я что-то тупой и нифига не понимаю, но буду пытаться :-) Я вам еще не надоел? ;-D Отпишу результаты своих дел :-)
Старый 05.09.2013, 15:30
Anufis

offline
Опыт: 6,290
Активность:
Ты б объяснил нормально, что ты сделать то хочешь.
Старый 05.09.2013, 15:32
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:21.