[ gpreda @ 24.11.2004. 11:05 ] @
U prostoru su date 4 tacke: A, B, C i D.
Izvrsena je transformacija prostora (translacija i rotacija) i poznate su koordinate slika tacaka A, B i C (odnosno poznate su koordinate tacaka A', B' i C').
Odrediti koordinate tacke D' (slika tacke D).

Moze formula ili algoritam kako se dolazi do formule koji je prilagodljiv primeni na racunaru.
[ filmil @ 24.11.2004. 13:38 ] @
Citat:

Moze formula ili algoritam kako se dolazi do formule koji je

prilagodljiv primeni na racunaru.



Pa, na primer:


Zakači po vektor za težišta oba trougla, tako da je svaki normalan na odgovarajuću ravan. Vodi računa o orijentaciji vektora, npr tako što ako je težište T napraviš normalu kao . Primeti da je treća tačka implicitno sadržana u T.

- Nađi rotaciju koja čini da ta dva vektora daju maksimalan skalarni

proizvod. (ne bi smelo da bude problem, jer je u pitanju osnovna

analitička geometriija) To je rotacija sa osom normalnom na ravan koju čine dotična dva vektora.

- Nađi rotaciju koja među-sliku preslikava tako da polazni vektori

ostanu paralelni, a da vektori od težišta do odgovarajućih temena

postanu kolinearni. To je rotacija sa osom paralelnom vektorima težišta, a koja prolazi kroz koordinatni početak.

- Kompozicija ove dve rotacije ti je rotacija koju tražiš.

- Transliraj novu među-sliku tako da se koordinate težišta poklope. To

je komponenta translacije koju tražiš.

- Na tačku D primeni, ovim redom, nađene translacije i rotacije.


Ovako dobijena transformacija bi trebalo da ispunjava uslove koje si

postavio.


f
[ gpreda @ 30.11.2004. 10:38 ] @
Nadao sam se da postoji neko jednostavnije resenje, srecom i nasao sam ga.

Predstavi se vektor v(AD) kao kombinacija vektora v(AB), v(AC) i v(AB) X v(AC) (mesoviti proizvod). Ovo je obican sistem jednacina 3 x 3.

Sada je lako - v(A'D') je ista kombinacija vektora v(A'B'), v(A'C') i v(A'B') X v(A'C').
[ Cybernoid II @ 30.11.2004. 11:39 ] @
Naravno, vektori v(AB), v(AC) i v(AB) X v(AC) su linerarno nezavisni i cine bazu
vektorskog prostora. Komponente vektora v(AD) u odnosu na datu bazu se
ne menjaju sa promenom koordinatne reprezentacije te baze.
Sjajan primer relativnosti za Sprecu. :)
[ filmil @ 30.11.2004. 11:57 ] @
Citat:
Ovo je obican sistem jednacina 3 x 3.
IMHO baš ovde može da bude problem. Nijedan sistem jednačina nije dovoljno običan da ne bi mogao da se numerički pogrešno reši. :) Ako ispadne da je slabo uslovljen, možeš da dobiješ veliku grešku.

Zato je, iz mog iskustva, uvek bolje izbeći rešavanje jednačina, odn. bilo kakav rad na invertovanju matrica, ako je moguće. U ovom slučaju jeste moguće i to tako što se odrede jedna translacija i dve rotacije; a te dve rotacije možeš kasnije da sklopiš u jednu, pošto ih izračunaš — dakle offline, na hartiji. Konačni rezultat je jedno vektorsko sabiranje i jedno množenje matricom fiksne dimenzije, što je koliko mi se čini jednostavnije od rešavanja 3x3 i provere na slabu uslovljenost.

f