Пятница, 22 Ноября 2024, 12:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Пара векторов и угол между ними.
SAN4EZДата: Вторник, 13 Апреля 2010, 21:20 | Сообщение # 1
участник
Сейчас нет на сайте
Имеем два нормализованных вектора, задача найти направление от первого вектора ко второму, где угол меньше. (по часовой или против).
Прикрепления: 6271242.jpg (6.3 Kb)


Требуется графический дизайнер.
AkyltistДата: Среда, 14 Апреля 2010, 02:12 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Так как ЯП не указан, то даю на чем мне проще:

вычисляем длину вектора по формуле sqrt (x*x+y*y+z*z).

function VectorLength(const x, y, z : Single) : Single;
asm
     FLD X
     FMUL ST, ST
     FLD Y
     FMUL ST, ST
     FADD
     FLD Z
     FMUL ST, ST
     FADD
     FSQRT
end;

косинус угла между векторами.
TVector3f= array[0..2] of single;
function VectorAngleCosine(const V1, V2: TVector3f): Single;
asm
     FLD DWORD PTR [EAX]
     FLD ST
     FMUL ST, ST
     FLD DWORD PTR [EDX]
     FMUL ST(2), ST
     FMUL ST, ST
     FLD DWORD PTR [EAX + 4]
     FLD ST
     FMUL ST, ST
     FADDP ST(3), ST
     FLD DWORD PTR [EDX + 4]
     FMUL ST(1), ST
     FMUL ST, ST
     FADDP ST(2), ST
     FADDP ST(3), ST
     FLD DWORD PTR [EAX + 8]
     FLD ST
     FMUL ST, ST
     FADDP ST(3), ST
     FLD DWORD PTR [EDX + 8]
     FMUL ST(1), ST
     FMUL ST, ST
     FADDP ST(2), ST
     FADDP ST(3), ST
     FMULP
     FSQRT
     FDIVP
end;

Остается только посчитать.... и определить угол по значению косинуса

SAN4EZДата: Среда, 14 Апреля 2010, 22:37 | Сообщение # 3
участник
Сейчас нет на сайте
Извиняюсь, что написал не корректно, но мне нужно найти направление (по часовой или против) от первого вектора ко второму, а не угол между ними. Хотя возможно я неправильно понял ваш код. Пишу на с++ плюс DirectX.

Добавлено (14.04.2010, 22:37)
---------------------------------------------
Проблема решена.


Требуется графический дизайнер.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг