You are on page 1of 11

O HOA 3D

BIEN OI TOA O QUAN SAT

Giang vien : Bui Tien Len

Quan sat 3D
Chuyen toa o cua cac oi tng t he toa o the gii
thc sang he toa o quan sat (toa o camera).

Trang 2

Mo ta camera quan sat


y


vup

v tr
O
z


vlook
x

Trang 3

Mo ta camera quan sat


goc nhn 1

at
camera

toan canh
goc nhn 2
Trang 4

Xay dng he toa o camera quan sat


Goc cua he toa o

VRP
Vector n v


v
n =  look
vlook


 vup n
u= 

vup n
  
v = n u


v

n


u

VRP

O
x
z

Trang 5

Phep bien oi ve toa o camera


y

Tnh tien


v

n


u

VRP

x
z

Trang 6

Phep bien oi ve toa o camera


y

Quay


v


n

u
z

VRP

x
Trang 7

Phep bien oi ve toa o camera


y


v


u

 VRP
n
z

x
Trang 8

Ma tran bien oi
Phep bien oi ve toa o camera bao gom : Phep tnh tien
T, phep quay R.
1

0
T=
0

VRPX

0
1

0
0

0
VRPY

1
VRPZ

0
ux

0
uy

,R =

0
uz

1
0

vx
vy

nx
ny

vz

nz

va
vx
nx
ux

uy
vy
ny

M = T.R =
uz
vz
nz





VRP
.
u

VRP
.
v

VRP
.
n

0
0

1
Trang 9

0
0

Cach chuyen oi toa o


y


v

n


u

He toa o goc

He toa o camera

P.M

VRP
P

O
x
z

Trang 10

Cai at
TAffine3D LookAt3D(TPoint3D vc, TPoint3D ve, TPoint3D vup)
{
TAffine3D T;
TPoint3D u, v, n;
n = Norm(ve-vc);
u = Norm(vup * n);
v = n * u;
T.M[0][0]
T.M[1][0]
T.M[2][0]
T.M[3][0]

=
=
=
=

u.x;
u.y;
u.z;
-vc^u;

T.M[0][1]
T.M[1][1]
T.M[2][1]
T.M[3][1]

=
=
=
=

v.x;
v.y;
v.z;
-vc^v;

T.M[0][2]
T.M[1][2]
T.M[2][2]
T.M[3][2]

=
=
=
=

n.x;
n.y;
n.z;
-vc^n;

T.M[0][3]
T.M[1][3]
T.M[2][3]
T.M[3][3]

=
=
=
=

0;
0;
0;
1;

return T;
}

Trang 11

You might also like