ÿþU n i w e r s y t e t M i k o Ba j a K o p e r n i k a
W y d z i a B F i z y k i , A s t r o n o m i i i I n f o r m a t y k i S t o s o w a n e j
J a k u b P r z e w Bo c k i
n r a l b u m u : 1 6 9 4 2 2
P r a c a m a g i s t e r s k a n a k i e r u n k u f i z y k a t e c h n i c z n a
W i z u a l i z a c j a d a n y c h z u |y c i e m g r a f i k i
t r ó j w y m i a r o w e j i m e c h a n i z m y i n t e r a k c j i z
u |y t k o w n i k i e m w O p e n G L
O p i e k u n p r a c y d y p l o m o w e j
d r J a c e k M a t u l e w s k i
Z a k Ba d M e c h a n i k i K w a n t o w e j
T o r u D 2 0 0 8
P r a c p r z y j m u j i a k c e p t u j P o t w i e r d z a m z Bo |e n i e p r a c y d y p l o m o w e
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
d a t a i p o d p i s o p i e k u n a p r a c y d a t a i p o d p i s p r a c o w n i k a d z i e k a n a t u
D z i k u j P a n u d o k t o r o w i
J a c k o w i M a t u l e w s k i e m u
z a c i e r p l i w o [, p o m o c i o p i e k
n a d p r o j e k t e m
2
U M K z a s t r z e g a s o b i e p r a w o w Ba s n o [c i n i n i e j s z e j p r a c y m a g i s t e r s k i e j w c e l u u d o s t p n i a n i a d l a p o t r z e b
d z i a Ba l n o [c i n a u k o w o - b a d a w c z e j l u b d y d a k t y c z n e j
3
S p i s t r e [c i
1 . W s t p & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & 6
2 . M e t o d y p o r u s z a n i a o b i e k t a m i & & & & & & & & & & & & & & & & & & & & & 7
2 . 1 . R o t a c j a s f e r y c z n a & & & & & & & & & & & & & & & & & & & & & & & 7
2 . 2 P r z e c i g a n i e o b i e k t ó w n a s c e n i e z a p o m o c m y s z y & & & & & & & & & & 1 4
3 . S e l e k c j a j a k o s p o s ó b z a z n a c z a n i a o b i e k t ó w & & & & & & & & & & & & & & & . 1 8
3 . 1 . S e l e k c j a & & & & & & & & & & & & & & & & & & & & & & & & & & . . 1 8
3 . 2 . T r y b y r e n d e r o w a n i a & & & & & & & & & & & & & & & & & & & & & . . . 1 8
3 . 3 . S t o s n a z w o b i e k t ó w & & & & & & & & & & & & & & & & & & & & & & 2 0
3 . 4 . B u f o r s e l e k c j i p r z e t w a r z a n i e r e k o r d ó w t r a f i e D& & & & & & & & & & & 2 2
3 . 5 . W y b i e r a n i e o b i e k t ó w & & & & & & & & & & & & & & & & & & & & & . . 2 3
4 . S p r z |e n i e z w r o t n e & & & & & & & & & & & & & & & & & & & & & & & & & . 2 9
4 . 1 . T r y b r e n d e r o w a n i a & & & & & & & & & & & & & & & & & & & & & & . 2 9
4 . 2 . B u f f o r s p r z e |e n i a z w r o t n e g o & & & & & & & & & & & & & & & & & & . 2 9
4 . 3 . D a n e b u f o r a s p r z |e n i a z w r o t n e g o & & & & & & & & & & & & & & & & 3 0
4 . 4 . P o d s u m o w a n i e & & & & & & & & & & & & & & & & & & & & & & & & 3 1
5 . G r a f D y n p r o g r a m d o w i z u a l i z a c j i d a n y c h & & & & & & & & & & & & & & & 3 2
5 . 1 . I n s t a l a c j a & & & & & & & & & & & & & & & & & & & & & & & & & & 3 3
5 . 2 . I n t e r f e j s a p l i k a c j i G r a f D y n & & & & & & & & & & & & & & & & & & & 3 6
5 . 3 . M o d u B i m p o r t u & & & & & & & & & & & & & & & & & & & & & & & . . 3 7
5 . 4 . O [w i e t l e n i e & & & & & & & & & & & & & & & & & & & & & & & & & 4 1
5 . 5 . W Ba s n o [c i w y k r e s u & & & & & & & & & & & & & & & & & & & & & & 4 5
4
6 . P o d s u m o w a n i e & & & & & & & & & & & & & & & & & & & & & & & & & & & 5 0
7 . L i t e r a t u r a & & & & & & & & & & & & & & & & & & & & & & & & & & & & & 5 1
D o d a t e k A P r y m i t y w y & & & & & & & & & & & & & & & & & & & & & & & & 5 2
5
1 . W s t p
M o i m z a d a n i e m b y Bo p r z y g o t o w a n i e p r o g r a m u w y k o r z y s t u j c e g o b i b l i o t e k
O p e n G L d o w i z u a l i z a c j i f u n k c j i d w ó c h z m i e n n y c h z = f ( x , y ) z a d a n e j p r z e z o d c z y t a n y z
p l i k u z b i ó r p u n k t ó w ( x , y , z ) . C h a r a k t e r y s t y c z n c e c h p r o g r a m u m a b y m o |l i w o [
i n t e r a k c j i z u |y t k o w n i k i e m o b e j m u j c a d o w o l n e o b r a c a n i a w y k r e s u z a p o m o c m y s z k i ,
z a z n a c z a n i e i p r z e c i g a n i e zr ó d e B [w i a t Ba ( r ó w n i e | m y s z k ) i p o d o k n a p o z w a l a j c e n a
w y g o d n e u s t a l a n i e w Ba s n o [c i w y k r e s u o r a z t w o r z e n i a i e d y c j i zr ó d e B [w i a t Ba . W y m a g a t o
b d z i e m . i n . u |y c i a t r y b u s e l e k c j i O p e n G L u m o |l i w i a j c e g o n a i n t e r a k c j u |y t k o w n i k a z
z a w a r t o [c i s c e n y o r a z w p r o w a d z e n i a d o o b s Bu g i k a m e r y m e c h a n i z m u r o t a c j i s f e r y c z n e j .
P r o g r a m z a w i e r a t e | m o d u B i m p o r t u p o z w a l a j c y n a w c z y t y w a n i e p l i k ó w z d a n y m i w
p o s t a c i t r ó j e k w s p ó Br z d n y c h x , y i z o r a z p l i k ó w z a w i e r a j c y c h j e d y n i e c z [ r z e c z y w i s t i
u r o j o n f u n k c j i z e s p o l o n e j . W t y m d r u g i m p r z y p a d k u p a r a m e t r y s i e c i m u s z b y p o b i e r a n e
z o s o b n e g o p l i k u l u b w p i s a n e p r z e z u |y t k o w n i k a w u d o s t p n i o n y m p r z e z p r o g r a m
f o r m u l a r z u .
W p i e r w s z y c h r o z d z i a Ba c h p r a c y o p i s u j n a j c i e k a w s z e , a z a r a z e m n a j t r u d n i e j s z e d o
z a i m p l e m e n t o w a n i a , t e c h n i k i u |y t e w p r o g r a m i e , a w i c r o t a c j s f e r y c z n , m e c h a n i z m
s e l e k c j i o b i e k t ó w w O p e n G L o r a z p o r u s z a n i e zr ó d e B [w i a t Ba z a p o m o c m y s z k i . K o l e j n e
r o z d z i a By p o [w i c o n e s z a i m p l e m e n t o w a n y m w p r o g r a m i e n a r z d z i o m t a k i m , j a k m o d u B
d o i m p o r t u d a n y c h , n a r z d z i e d o d e f i n i o w a n i a i e d y c j i w Ba s n o [c i zr ó d e B [w i a t Ba o r a z
n a r z d z i a p o z w a l a j c e n a m o d y f i k o w a n i e w y g l d u s c e n y o r a z d o b i e r a n i a p a r a m e t r ó w
w y k r e s u .
6
2 . M e t o d y p o r u s z a n i a o b i e k t a m i
2 . 1 . R o t a c j a s f e r y c z n a
K a |d y z a a w a n s o w a n y p r o g r a m w y [w i e t l a j c y g r a f i k t r ó j w y m i a r o w d a j e
m o |l i w o [ s w o b o d n e g o o b r a c a n i a m o d e l u z a p o m o c m y s z y . N a t y m w Ba [n i e p o l e g a
r o t a c j a s f e r y c z n a . W t y m r o z d z i a l e p r z e d s t a w i i m p l e m e n t a c j e t e j t e c h n i k i n a p r z y k Ba d z i e
m o j e g o p r o g r a m u ( R y s . 1 . ) o r a z p o w o d y d l a k t ó r y c h w a t r o j e j u |y w a . C a Bo [ o p a r t a j e s t
n a s t a n d a r d o w e j k l a s i e A r c B a l l , k t ó r a z o s t a Ba o p i s a n a w P e r e Bk a c h p r o g r a m o w a n i a
g i e r [ 1 3 ] , a t a k |e w w i t r y n i e N e H e ( l e k c j a 4 8 ) [ 7 ] .
K l a s a A r c B a l l o p a r t a j e s t n a k w a t e r n i o n a c h . S t o o b i e k t y m a t e m a t y c z n e , k t ó r e
s Bu | p r o g r a m i s t g r a f i k i i g i e r d o r e p r e z e n t o w a n i a r o t a c j i i o r i e n t a c j i w p r z e s t r z e n i 3 D
[ 1 7 ] . O g ó l n i e k w a t e r n i o n y t o s t r u k t u r a a l g e b r a i c z n a b d c a r o z s z e r z e n i e m c i a Ba l i c z b
z e s p o l o n y c h . J e d n a z j e g o n o t a c j i r e p r e z e n t o w a n a j e s t w p o s t a c i p a r y , w k t ó r e j p i e r w s z a
c z [ t o r z e c z y w i s t a w i e l k o [ s k a l a r n a , a d r u g a t o t r ó j w y m i a r o w y w e k t o r w s p ó Bc z y n n i k ó w
c z [c i u r o j o n y c h :
[ w ( x y z ) ]
W g r a f i c e 3 D k w a t e r n i o n t w o r z y k t o b r o t u w , o r a z o [ o b r o t u ( x y z ) w o k ó B k t ó r e j
w y k o n y w a n y j e s t o b r ó t [ 1 9 ] . J e |e l i p r z y j m i e m y , |e m a m y k t o b r o t u ± i n j a k o w e k t o r
j e d n o s t k o w y o p i s u j c y o [, t o k w a t e r n i o n r e p r e z e n t u j c y o k r e [l o n y o b r ó t b d z i e m i a B
p o s t a ( 1 ) :
¸
w = c o s ( )
2
¸
v = s i n ( ) n g d z i e v = ( x , y , z ) ( 1 )
2
¸ ¸
[ c o s ( ) s i n ( ) n ]
2 2
M a j c t e w s z y s t k i e d a n e m o |e m y s t w o r z y m a c i e r z ( 2 ) :
7
w 2 + x 2 - y 2 - z 2 2 x y + 2 w z 2 x z - 2 w y 0
2 x y - 2 w z w 2 - x 2 + y 2 - z 2 2 y z + 2 w x 0 ( 2 )
2 x z + 2 w y 2 y z - 2 w x w 2 - x 2 - y 2 + z 2 0
0 0 0 w 2 + x 2 + y 2 + z 2
M a j c p u n k t y i w e k t o r y m o |e m y p r z e k s z t a Bc i j e , p o p r z e z p r z e m n o |e n i e i c h p r z e z
p o w y |s z m a c i e r z ( 2 ) r e p r e z e n t u j c o b r ó t [ 1 7 ] .
R o t a c j a s f e r y c z n a w y m a g a m a p o w a n i a d w u w y m i a r o w y c h w s p ó Br z d n y c h m i e j s c a ,
w k t ó r y m z n a j d u j e s i m y s z w o k n i e w m o m e n c i e k l i k n i c i a d o t r ó j w y m i a r o w y c h
k o o r d y n a t ó w w i r t u a l n e j k u l i [ 7 ] . K i e d y k l i k n i e m y m y s z w o k n o t w o r z o n y j e s t w e k t o r
p o c z t k o w y ( A r c B a l l . c l i c k ( &