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

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

Фиксация углов куба.


@!!ex ©   (2007-12-11 14:38:00) 

Есть куб.
Он по оси Z повернут на какой то угол. Нужно найти ближайший к этому углу угол, кратный 90 градусам.
углы от 0 до 360.
Делаю поворот вот так:
     if (Round(Angle) mod 90)<45 then begin
       Angle:=Angle-DelayTime/AnimationTime*45;
       if not ((Round(Angle) mod 90)<45) then
         NeedFixAngle:=false;
     end
     else begin
       Angle:=Angle+DelayTime/AnimationTime*45;
       if not ((Round(Angle) mod 90)>45) then
         NeedFixAngle:=false;
     end;

а оно не работает, :(


@!!ex   (2007-12-12 10:01:00) [1]

Уже все решил. Вчера еще.


palva   (2007-12-12 09:55:00) [2]

uses Math;
((Angle + Sign(Angle) * 45) div 90) * 90;


MBo   (2007-12-11 14:54:00) [3]

((Angle + 45) div 90) * 90;


palva   (2007-12-11 14:48:00) [4]

n угол в градусах. Округляем так:
Round(n/90)*90


Sonia   (2007-12-11 14:46:00) [5]


> только если угол 45<X<315

А откуда именно такие данные?


@!!ex   (2007-12-11 14:41:00) [6]

вернее оно работает, но только если угол 45<X<315


Наверх

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