{{notification.text}}

MirGames

03.12.08 03:52
0
Доброго времени суток. :)
При создании авиасимулятора (ну так полетать захотелось), возникла у меня такая проблемка; вродебы управление самолётом сделал, включил, да действительно и поворачивается он и двигается куды надо, НО после нескольких поворотов его начинает глючить и двигаться не туды куда надо.
Вобщем код ниже (там правдо много вся кой гадости но каму не лень гляньте пожайлуста).
Или може кто то знает где зацепить исходник простенького авиа симулятора ))
#1
03.12.08 17:22
0
люди подскажите как сделать векторы ортонормальными.
Поль зуюсь например вот этим:
D3DXVec3Cross(&up, &look, &right);
по идее вектор up должен быть перпендикулярен look и right, но при
angle=D3DXVec3Dot(&look,&up);
angle=D3DXVec3Dot(&right,&up);
angle!=0, хотя насколько я помню если векторы перпендикулярны то результатом функции должен быть 0.
#2
Почётный лектор
03.12.08 17:35
0
Smouking
Ортонормализация делается так:

1. Выбираем два вектора и третий устанавливаем в их кросспродукт.
2. Выбираем один из этих двух векторов и вектор, полученный в 1. Третий вектор заменяем на кросспродукт выбранных в данном пункте векторов
3. Нормализуем каждый из векторов.
#3
03.12.08 23:08
0
Universal
спасибо щас попробую...

что то типа такого?
D3DXVec3Cross(&up, &look, &right);
D3DXVec3Cross(&right, &up, &look);
D3DXVec3Normalize(&right, &right);
D3DXVec3Normalize(&look, &look);
D3DXVec3Normalize(&up, &up);
#4
03.12.08 23:28
0
млин всёравно чёто не так, после этого проверяю скалярное произведение, а оно всёравно бывает !=0.
Може кто то когда то натыкался на исходники простенькой леталки )))
#5
Почётный лектор
04.12.08 01:25
0
Сильно != 0 или в пределах погрешности float не равно нулю?
#6
04.12.08 01:29
0
Точно не помню, но где то около 0.02 или 0.002 непомню ))
#7
Хранитель Флейма
04.12.08 01:30
0
Universal
Похоже сейчас будет для Курильщика великое открытие, что порой 0.0 <> 0 :)
#8
04.12.08 01:37
0
нет насчёт этого я в курсе, но один Х не работает + ещё один глюк появился. )
#9
04.12.08 01:41
0
млин люди раскажите как надо "управлять самолётом", в смысле как реализовать.
я использую 3 векторо для задания наклона по 3 осям + позиция.
Може кто то гдето видел как это надо делать для симуляторов.
#11
04.12.08 03:14
0
Всем спасибо за то что откликнулись, вроде разобрался (кватернионы мне в помощь)
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}