Local Global Nearest Neighbor Binary Space Partitioning Delaunay Triangulation / Voronoi Diagram
Information Density Spatial Range
A/B/D A/BE A/C A B C D E
Ideal Spaces Infinitesimal Infinite Homogeneous Heterogenous
Spectrum of Computational Spaces Information Density Delaunay - - PowerPoint PPT Presentation
Spectrum of Computational Spaces Information Density Delaunay Triangulation / Voronoi Diagram Heterogenous Nearest Binary Space Neighbor Partitioning A A/B/D A/C B C A/BE D E Local Global Ideal Homogeneous Spaces Spatial
Local Global Nearest Neighbor Binary Space Partitioning Delaunay Triangulation / Voronoi Diagram
Information Density Spatial Range
A/B/D A/BE A/C A B C D E
Ideal Spaces Infinitesimal Infinite Homogeneous Heterogenous
Addition Subtraction
A B
|A|*|B|*cos() AxB = C, |C| = |A|*|B|*sin()
Dot Product Cross Product
A B C
answers the question: How much is a vector aligned with another? answers the questions: How orthogonal are two vectors? What plane do two vectors define?
Window Culling Camera Geometry
ModelView Projection Divide by W Viewport Transform
Object Coordinates Eye Coordinates Clip Coordinates Normalized Device Coordinates Window Coordinates
(x, y, z) (x, y, z, 1) (xe, ye, ze, 1) (xc, yc, zc, 1) (xn, yn, zn) (xw, yw, Zw)
glVertex glTranslate glRotate glScale glPerspective glOrtho glFrustum gluLookAt glViewport
x, y, z [-1, 1]
Normal Matrix Transpose(Inverse(MV))
glNormal
(x, y, z) (xe, ye, ze)
X Y Z W=1 Mmodel Mview Mmodelview X Y Z W=1 Xeye Yeye Zeye Weye =
m22 m02 m12 T2 m11 m01 m21 T1 T0 m20 m10 m00 1 Z Y
X
Z Y
X
T0 T1 T2 m22 m11 m20 m10 m00 m02 m21 m01 m12
Homogeneous Coordinates Canonical Affine Transformation
1 1 Tz 1 Ty Tx 1 glTranslate(Tx, Ty, Tz) (t0, t1, t2) (0, 0, 0)
Translation
1 R22 R02 R12 R11 R01 R21 R20 R10 R00 glRotate(angle, Rx, Ry, Rz)
Rotation angle
X
(Rx, Ry, Rz)
1 1
cos() sin()
cos()
glRotate(, 0, 0, 1)
Rotation
X
sin() cos() cos() X-axis Y-axis
(cos(), sin()) (-sin(), cos())
1
cos()
1
cos()
1
cos() sin() cos()
1
Z-axis Y-axis X-axis roll Yaw Pitch
glRotate(Yaw, 0, 1, 0) glRotate(Pitch, 1, 0, 0) glRotate(Roll, 0, 0, 1)
Compound rotation of 3 angles:
1 Sz Sy Sx glScale(Sx, Sy, Sz)
Scale s0 s1 s2
1 Look(z) Look(x) Look(y)
Up(y) Up(x) Up(z) Left(z) Left(y) Left(x)
gluLookAt(eye, center, up) 1 m22 m02 m12 T2 m11 m01 m21 T1 T0 m20 m10 m00
Viewing Axes Current MV Left Up Look Eye Center Look = Center - Eye Left = Up X Look
transforms, thus the transposed axes in the View Matrix
L M A B/B' C C' Eye A' L M
Desirable Properties: bijectivity
How to map line L to line M?
Ideal Point Ideal Point
w=0 w=1
(kx, ky, kz, kw) (x/w, y/w, z/w, 1)
Projective Plane (P2):
Set of all equivalence classes of ordered triples of non-zero vectors in E3 where equivalence is the mutual proportionality of two vectors Set of all lines passing through the origin of E3
E3 = 3D Euclidean Space P2 = Projective Plane P2 S2 = Unit sphere in E3 S2
(x, y, z, w) equivalent points
ideal lines
Möbius Strip Sphere
A A A A B B pole pole
Torus
A B A B
Projective Plane
A B A B