Re: zmniejszenie obciązenia procesora

Autor: Grzegorz P. (opti_at_go2.pl)
Data: Mon 22 Jan 2001 - 14:02:39 MET


Almight <almight_at_poczta.wp.pl> wrote in message
news:94fb1b$q3b$1_at_sunsite.icm.edu.pl...
> Do obracania punktu wokół jednej z trzech osi stosuje wzory:
> Dla osi X wzór jest następujący:
> y=y*cos(kąt x)-z*sin(kąt x)
> z=y*sin(kąt x)+z*cos(kąt x)
> Współrzędna X w czasie obrotu nie zmienia się. W przypadku osi Y wzór jest
podobny:
> x=x*cos(kąt y)+z*sin(kąt y)
> z=x*sin(kąt y)-z*cos(kąt y)
> Tutaj współrzędna Y też się nie zmienia. Wzór na obrót wokół osi Z:
> x=x*cos(kąt z)-y*sin(kąt z)
> y=x*sin(kąt z)+y*cos(kąt z)
> Współrzędna Z po wykonaniu tego obrotu jest taka sama jak przed obrotem.
Obracając jeden punkt wokół wszystkich osi potrzebuje
> dwunastu operacji mnożenia. Można ich liczbę zmniejszyć do ośmiu lub nawet
sześciu.
> Pytanie brzmi - jak to zrobić?

Najlepiej jest uzyc mnozenia macierzy.

| e11 e12 e13 | | x | | x1 |
| e21 e22 e23 | * | y | = | y1 |
| e31 e32 e33 | | z | | z1 |

e11 .. e33 sa to parametry transformacji, a x,y,z sa to wspolrzedne
obracanego punktu.
Nie mam przy sobie znaczenia poszczegolnych parametrow, ale wymnazajac te
macieze przez siebie latwo mozna znalezc ich znaczenie.

PS. Ale aby to szybko dzialalo nalezy uzyc prostego ukladu rownan
wynikajacego z w/w mnozenia maciezy.

--
Grzegorz P.
mailto: gplywacz_at_go2.pl
<----------------------------------------->
Gdyby budowniczowie budowali swoje domy tak jak programisci pisza swoje
programy, to jeden dzieciol w jeden dzien zniszczylby cala cywilizacje


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 21:19:32 MET DST