3D Geometry for Computer Graphics Class 1. General Office hour: Sunday 11:00 – 12:00 in Schreiber...
-
date post
20-Dec-2015 -
Category
Documents
-
view
221 -
download
4
Transcript of 3D Geometry for Computer Graphics Class 1. General Office hour: Sunday 11:00 – 12:00 in Schreiber...
3D Geometry forComputer Graphics
Class 1
General
Office hour: Sunday 11:00 – 12:00 in Schreiber 002 (contact in advance)
Webpage with the slides: http://www.cs.tau.ac.il/~sorkine/courses/cg/cg2005/
E-mail: [email protected]
The plan today
Basic linear algebra and Analytical geometry
Why??
Why??
We represent objects using mainly linear primitives: points lines, segments planes, polygons
Need to know how to compute distances, transformations, projections…
Basic definitions
Points specify location in space (or in the plane). Vectors have magnitude and direction (like
velocity).
Points Vectors
Point + vector = point
vector + vector = vector
Parallelogram rule
point - point = vector
A
BB – A
A
BA – B
point + point: not defined!!
Map points to vectors
If we have a coordinate system with
origin at point O We can define correspondence between points
and vectors:
p p p O
v O + v
Inner (dot) product
Defined for vectors:
, || || || || cosθ v w v w
L v
wL
cosθ || ||
,
|| ||L
w
v w
v
Projection of w onto v
Dot product in coordinates (2D)
v
w
xv
yv
xw
yw
x
y
O
( , )
( , )
,
v v
w w
v w v w
x y
x y
x x y y
v
w
v w
Perpendicular vectors (2D)
v
v
, 0
( , ) ( , )v v v vx y y x
v w
v v
Parametric equation of a line
p0
vt > 0
t < 0 t = 0
( ) , ( , )t t t 0p v
Parametric equation of a ray
p0
vt > 0
t = 0
( ) , (0, )t t t 0p v
Distance between two points
B
A
xB
yB
xA
yA
x
y
O
22 )()(
,
||||),(dist
ABAB yyxx
ABAB
ABBA
2
22 2 2
2
, 0
( ), 0
, , 0
, ,
, || ||
,dist ( , ) || || || ||
|| ||
t
t
t
l
0
0
0 0
00
q q v
q p v v
q p v v v
q p v q p v
v v v
q p vq q q q p
v
Distance between point and line
Find a point q’ such that (q q’)vdist(q, l) = || q q’ ||
p0
v
q
q’ = p0 +tv
l
Easy geometric interpretation
p0
v
q
q’2 2 2
2 2 2
22
2
:
(1) dist( , ) || ||
,(2)
|| ||
dist( , ) || ||
,|| || .
|| ||
L
L
L
0
0
0
00
Pythagoras
q q q p
q p v
v
q q q p
q p vq p
v
l
L
Distance between point and line – also works in 3D!
The parametric representation of the line is coordinates-independent
v and p0 and the checked point q can be in 2D or in 3D or in any dimension…
Implicit equation of a line in 2D
0, , , R, ( , ) (0,0)Ax By C A B C A B
x
yAx+By+C > 0
Ax+By+C < 0
Ax+By+C = 0
Line-segment intersection
1 2
1 1 2 2
The segment Q Q intersects the line
( )( ) 0Ax By C Ax By C
x
yAx+By+C > 0
Ax+By+C < 0
Q1 (x1, y1)
Q2 (x2, y2)
Representation of a plane in 3D space
A plane is defined by a normal n and one point in the plane p0.
A point q belongs to the plane < q – p0 , n > = 0
The normal n is perpendicular to all vectors in the plane
n
p0
q
Distance between point and plane
Project the point onto the plane in the direction of the normal:
dist(q, ) = ||q’ – q||
n
p0q’
q
Distance between point and plane
n
p0q’
q
2
22 2 2 2
2
( ) || , R
, 0 (because is in the plane )
, 0
, , 0
,
|| ||
,dist ( , ) || || || || .
|| ||
0
0
0
0
0
q q n q q n q q n
q p n q
q n p n
q p n n n
p q n
n
q p nq q q n
n
Implicit representation of planes in 3D
0, , , , R, ( , , ) (0,0,0)Ax By Cz D A B C D A B C
(x, y, z) are coordinates of a point on the plane (A, B, C) are the coordinates of a normal vector to the
plane
Ax+By+Cz+D > 0
Ax+By+Cz+D < 0
Ax+By+Cz+D = 0
Distance between two lines in 3D
p1
p2
u
v
d
The distance is attained between two points q1 and q2
so that (q1 – q2) u and (q1 – q2) v
q1
q2
l1
l2
1
2 2
( )
( )
l s s
l t t
1p u
p v
Distance between two lines in 3D
( ) , 0
( ) , 0
s t
s t
1 2
1 2
p p u v u
p p u v v
2
2
( ), || || , 0
( ), , || || 0
s t
s t
1 2
1 2
p p u u v u
p p v u v v
p1
p2
u
v
d
q1
q2
l1
l2
1
2 2
( )
( )
l s s
l t t
1p u
p v
Distance between two lines in 3D
2
2 2 2
2
2 2 2
, , || || ,
|| || || || ,
|| || , , ,
|| || || || ,
s
t
1 2 1 2
1 2 1 2
u v v p p v u p p
u v u v
u u p p u v u p p
u v u v
p1
p2
u
v
d
q1
q2
l1
l2
1
2 2
( )
( )
l s s
l t t
1p u
p v
Distance between two lines in 3D
||)~()~(||),(dist 2121 tlslll
p1
p2
u
v
d
q1
q2
l1
l2
1
2 2
( )
( )
l s s
l t t
1p u
p v
Barycentric coordinates (2D)
Define a point’s position relatively to some fixed points. P = A + B + C, where A, B, C are not on one line, and
, , R. (, , ) are called Barycentric coordinates of P with
respect to A, B, C (unique!) If P is inside the triangle, then ++=1, , , > 0
A B
C
P
Barycentric coordinates (2D)
A B
C
P
triangletheofareathedenotes,,
,,
,,
,,
,,
,,
,,
CCBA
BAPB
CBA
ACPA
CBA
CBPP
Example of usage: warping
Example of usage: warping
Tagret
AB
C
We take the barycentric coordinates , , of P’ with respect to A’, B’, C’.Color(P) = Color( A + B + C)
PP
1P
See you next time!