![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фиксация углов куба.
@!!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