Wyznaczenie kątów pomiędzy wektorami.

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
kacperSchu
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 18 lut 2014, o 22:15
Płeć: Mężczyzna
Lokalizacja: Polska

Wyznaczenie kątów pomiędzy wektorami.

Post autor: kacperSchu »

Witam,
geometrię przestrzenną miałem dawno temu więc wolałbym sprawdzić czy mój tok rozumowania jest poprawny (i efektywny). Nie wiem czy w opisie zachowałem poprawną semantykę pojęć.

Piszę skrypt inspirowany czymś co się nazywa 'pose reader' lub 'cone reader' dla programy Maya (w języku Python 2.7).


W skrócie zasada działania polega na tym, że mamy wektory stałe wyznaczające kierunki ekstremalnych pozycji kości ( \(\displaystyle{ \vec{A}}\), \(\displaystyle{ \vec{B}}\) itd. )
Każdy z tych wektorów ma przypisaną zmienną 'pose' zależną od wektora wyznaczającego aktualną pozycję kości ( \(\displaystyle{ \vec{x}}\).)
Wartość współczynnika 'pose' rośnie od 0 do 1 w zależności od bliskości wektora \(\displaystyle{ \vec{x}}\)
Czyli gdy wektor \(\displaystyle{ \vec{x}}\) obraca się w kierunku wektora \(\displaystyle{ \vec{A}}\) oddalając się od wektora \(\displaystyle{ \vec{B}}\) wartość pose.A rośnie natomiast wartość pose.B maleje.


Przejdźmy do zadania.

Obrazek nr.1
AU
AU
ZjlHjKM.gif (2.01 MiB) Przejrzano 37 razy
Mamy dane 4 wektory o tej samej długości zaczepione w punkcie O.
Wektor startowy - \(\displaystyle{ \vec{S}}\)
Wektory ekstremalnych pozycji - \(\displaystyle{ \vec{A}}\) ,\(\displaystyle{ \vec{B}}\)
Wektor aktualnej pozycji - \(\displaystyle{ \vec{x}}\)

Czego szukamy:
[url]http://i.imgur.com/9l89584.jpg[/url]


Moje rozwiązanie:
1. szukamy przecięcia dwóch płaszczyzn:
\(\displaystyle{ \vec{x^{ab}}}\) = (\(\displaystyle{ \vec{S}\vec{x}}\)) (\(\displaystyle{ \vec{A}\vec{B}}\))
\(\displaystyle{ \vec{x^{sa}}}\) = (\(\displaystyle{ \vec{S}\vec{A}}\)) (\(\displaystyle{ \vec{x}\vec{B}}\))
\(\displaystyle{ \vec{x^{sb}}}\) = (\(\displaystyle{ \vec{S}\vec{B}}\)) (\(\displaystyle{ \vec{x}\vec{A}}\))

2. znajdujemy kąty pomiędzy:
\(\displaystyle{ \vec{S}}\) \(\displaystyle{ \vec{x^{sa}}}\)
\(\displaystyle{ \vec{S}}\) \(\displaystyle{ \vec{x^{sb}}}\)
\(\displaystyle{ \vec{A}}\) \(\displaystyle{ \vec{x^{ab}}}\)
\(\displaystyle{ \vec{B}}\) \(\displaystyle{ \vec{x^{ab}}}\)

3. dalej już proste działania wynikające z proporcji.




Jakby były jakieś niejasności to pisać. Postaram się inaczej rozrysować problem.
Z góry dzięki za jakiekolwiek wskazówki.
pozdrawiam,
K.
ODPOWIEDZ