HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 06.07.2019, 14:32
Roger571
Познающий
Регистрация: 22.07.2015
Сообщений: 58
С нами: 5689694

Репутация: 68
По умолчанию

Цитата:
Сообщение от ALF  

это всё не то.
Не особо понимаю с похмелья что тебе требуется в итоге, но попробуй

Вычисляешь угол между объектами с помощью atan2 и переводишь в кватернион.

Цитата:
Сообщение от Спойлер  


C++:





Код:
void
QuaternionFromAngle
(
float
*
fQuaternion
,
float
fAngle
)
{
fAngle
=
DEGTORAD
(
fAngle
)
;
float
fMatrix
[
3
]
[
3
]
,
c
=
cos
(
fAngle
)
,
s
=
sin
(
fAngle
)
;
// QuaternionRotateZ
fMatrix
[
0
]
[
0
]
=
c
;
fMatrix
[
0
]
[
1
]
=
s
;
fMatrix
[
0
]
[
2
]
=
0.0
;
fMatrix
[
1
]
[
0
]
=
-
s
;
fMatrix
[
1
]
[
1
]
=
c
;
fMatrix
[
1
]
[
2
]
=
0.0
;
fMatrix
[
2
]
[
0
]
=
0.0
;
fMatrix
[
2
]
[
1
]
=
0.0
;
fMatrix
[
2
]
[
2
]
=
1.0
;
// GetQuaternionFromMatrix
fQuaternion
[
0
]
=
sqrt
(
Max
(
(
float
)
0
,
1.0f
+
fMatrix
[
0
]
[
0
]
+
fMatrix
[
1
]
[
1
]
+
fMatrix
[
2
]
[
2
]
)
)
*
0.5f
;
fQuaternion
[
1
]
=
sqrt
(
Max
(
(
float
)
0
,
1.0f
+
fMatrix
[
0
]
[
0
]
-
fMatrix
[
1
]
[
1
]
-
fMatrix
[
2
]
[
2
]
)
)
*
0.5f
;
fQuaternion
[
2
]
=
sqrt
(
Max
(
(
float
)
0
,
1.0f
-
fMatrix
[
0
]
[
0
]
+
fMatrix
[
1
]
[
1
]
-
fMatrix
[
2
]
[
2
]
)
)
*
0.5f
;
fQuaternion
[
3
]
=
sqrt
(
Max
(
(
float
)
0
,
1.0f
-
fMatrix
[
0
]
[
0
]
-
fMatrix
[
1
]
[
1
]
+
fMatrix
[
2
]
[
2
]
)
)
*
0.5f
;
fQuaternion
[
1
]
=
static_cast

(
_copysign
(
fQuaternion
[
1
]
,
fMatrix
[
2
]
[
1
]
-
fMatrix
[
1
]
[
2
]
)
)
;
fQuaternion
[
2
]
=
static_cast

(
_copysign
(
fQuaternion
[
2
]
,
fMatrix
[
0
]
[
2
]
-
fMatrix
[
2
]
[
0
]
)
)
;
fQuaternion
[
3
]
=
static_cast

(
_copysign
(
fQuaternion
[
3
]
,
fMatrix
[
1
]
[
0
]
-
fMatrix
[
0
]
[
1
]
)
)
;
}


Пробуй, вроде должно работать
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.