Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ArcTan [Delphi, DelphiX, Windows]


n0p ©   (2005-07-12 12:13:00) 

Делаю игру. Хочу, чтобы игрок смотрел в сторону курсора, но угол определяется не так. Если курсор поднять высоко то голова поворацивается вообще на другую сторону :).

 if (iX + 4) = MouseX then
   Angle := 0
 else
   Angle := ArcTan((MouseY - (iY + 3))/(MouseX - (iX + 4)));

 if MouseX < (iX + 4) then Angle := Angle + PI;
...
 Find('head').DrawRotate(DXDraw.Surface, iX + 10, iY + 9, 15, 11, 0, 0.5, 0.9, Trunc(Angle/PI*255));


n0p   (2005-07-12 18:37:00) [1]

Понял. Угу. Пасиб. Работает.


A22   (2005-07-12 14:44:00) [2]

atan2 вернет угол от -pi до +pi. переведи в свой отрезок (тебе нужно 0-255?)


n0p   (2005-07-12 13:31:00) [3]


uses ..., Math
...
Angle := ArcTan2((MouseY - (iY + 3)),(MouseX - (iX + 4)));


Ну ничего нового.


Kobik   (2005-07-12 12:35:00) [4]

Используй ArcTan2 и никаких проверок делать не придется


Наверх

Титульная страница Поиск, карта сайта Написать письмо