Top Banner
GEOMETRIC OBJECTS AND TRANSFORMATIONS
42

GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Mar 06, 2018

Download

Documents

duongtuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

GEOMETRIC OBJECTS AND

TRANSFORMATIONS

Page 2: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Introduction

In computer graphics many applications need to alter or

manipulate a picture, for example, by changing its size,

position or orientation.

This can be done by applying a geometric transformation to

the coordinate points defining the picture.

Definition: Geometry

The branch of mathematics concerned with the properties of and

relationships between points, lines, planes, and figures.

2

Page 3: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Geometric Objects- Points

Point is a fundamental geometric object.

In a three-dimensional geometric system, a point is a location

in space.

The only property that a point possesses is that point’s

location; a mathematical point has neither a size nor a shape.

3

Page 4: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Geometric Objects- Scalars

Points are useful in specifying geometric objects but are not

sufficient by themselves. We need real numbers to specify

quantities such as the distance between two points.

Real numbers—and complex numbers, which we will use

occasionally—are examples of scalars.

Scalars are objects that obey a set of rules that are abstractions

of the operations of ordinary arithmetic

4

Page 5: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Geometric Objects- Vectors

Vectors allow us to work with directions.

Physicists and mathematicians use the term vector for any

quantity with direction and magnitude. Physical quantities,

such as velocity and force, are vectors. A vector does not,

however, have a fixed location in space

In computer graphics, we often connect points with directed

line segments, A directed line segment has both magnitude—

its length—and direction—its orientation—and thus is a

vector.

5

Page 6: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

The Computer Science View :

Vector ,Scalar , Point

Computer scientist prefers to see vector , scalar and point as

abstract data types (ADTs).

An ADT is a set of operations on data; the operations are

defined independently of how the data are represented

internally or of how the operations are implemented.

The notion of data abstraction is fundamental to modern

computer science. For example, the operation of adding an

element to a list or of multiplying two polynomials can be

defined independently of how the list is stored or of how real

numbers are represented on a particular computer

6

Page 7: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

The Computer Science View :

Vector ,Scalar , Point

From a computational point of view, we

should be able to declare geometric objects through code such

as

vector u,v;

point p,q;

scalar a,b;

7

Page 8: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Dot and cross products

Many of the geometric concepts relating the orientation

between two vectors are in terms of the dot (inner) and cross

(outer) products of two vectors.

The dot product of u and v is written u . v. If u . v = 0, u and v

are said to be orthogonal.

In a Euclidean space, the magnitude of a vector is defined.

The square of the magnitude of a vector is given by the dot

product

|u|2 = u . u.

The cosine of the angle between two vectors is given by

cos θ = u . v

|u||v|

8

Page 9: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Dot and cross products con..

In addition, |u| cos θ = u . v/|v| is the length of the orthogonal

projection of u onto v, as shown in figure below .

Thus, the dot product expresses the geometric result that the

shortest distance from a point (the end of the vector u) to the

line segment v is obtained by drawing the vector orthogonal to

v from the end of u

9

Page 10: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

In a vector space, a set of vectors is linearly independent if

we cannot write one of the vectors in terms of the others using

scalar-vector addition. A vector space has a dimension, which

is the maximum number of linearly independent vectors that

we can find.

Given any three linearly independent vectors in a three-

dimensional space, we can use the dot product to construct

three vectors, each of which is orthogonal to the other two.

Dot and cross products con..

10

Page 11: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

We can also use two nonparallel vectors, u and v, to determine

a third vector n that is orthogonal to them.This vector is the

cross product

n = u × v.

The magnitude of the cross

product gives the magnitude of the sine of the angle θ between

u and v

| sin θ| = |u × v|

|u||v|

Dot and cross products con..

11

Page 12: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Three dimensional Primitives

Three features characterize three-dimensional objects that fit

well with existing graphics hardware and software:

1.The objects are described by their surfaces and can be

thought of as being hollow

2.The objects can be specified through a set of vertices in

three dimensions.

3. The objects either are composed of or can be approximated

by flat, convex polygons

12

Page 13: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Three dimensional Primitives

Curves in 3D Surface in 3 D Volumetric object

13

Page 14: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Coordinates free geometry

Points exist in space regardless of any reference or coordinate

system. Thus, we do not need a coordinate system to specify a

point or a vector.

Object and coordinate system Object without coordinate system

14

Page 15: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Homogenous Coordinates

Let’s move our problem into 3D.

Let point (x, y) in 2D be represented by point (x, y, 1) in the new

space.

Scaling our new point by any value a puts us somewhere along a

particular line: (ax, ay, a).

A point in 2D can be represented in many ways in the new space.

(2, 4) ---------- (8, 16, 4) or (6, 12, 3) or (2, 4, 1) or etc.

y y

x

x

w

15

Page 16: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Homogenous Coordinates

We can always map back to the original 2D point by dividing

by the last coordinate

(15, 6, 3) --- (5, 2).

(60, 40, 10) - ?.

Why do we use 1 for the last coordinate?

The fact that all the points along each line can be mapped

back to the same point in 2D gives this coordinate system its

name – homogeneous coordinates.

16

Page 17: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Frames In OpenGl

OpenGL is based on a pipeline model, the first part of which

is a sequence of operations on vertices, many of which are

geometric.

We can characterize such operations by a sequence of

transformations or as a sequence of changes of frames for the

objects specified by an application program.

17

Page 18: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Frames In Open Gl Pipeline

1.Object (or model) coordinates

2. World coordinates

3. Eye (or camera) coordinates

4. Clip coordinates

5. Normalized device coordinates

6. Window (or screen) coordinates

18

Page 19: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Data Structures for object representation

19

Page 20: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

2D Transformations

What is transformations?

The geometrical changes of an object from a current state to

modified state.

A rule for moving every point in a plane figure to a new

location.

20

Page 21: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Affine transformation

In geometry, an affine transformation is a transformation

which preserves straight lines (all points lying on a line

initially still lie on a line after transformation) and ratios of

distances between points lying on a straight line. It does not

necessarily preserve angles or lengths, but does have the

property that sets of parallel lines will remain parallel to each

other after an affine transformation.

21

Page 22: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Affine transformation con..

Examples of affine transformations include translation,

geometric contraction, expansion, reflection, rotation

An affine transformation is equivalent to a linear

transformation followed by a translation

22

Page 23: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Types of Transformation

Translation

Rotation

Scaling

23

Page 24: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Translation

A translation moves all points in an

object along the same straight-line

path to new positions.

The path is represented by a vector,

called the translation or shift vector.

We can write the components:

p'x = px + tx

p'y = py + ty

or in matrix form:

P' = P + T

tx

ty

x’

y’

x

y

tx

ty = +

(2, 2)= 6

=4

?

24

Page 25: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Translation con…

In a translation a figure slides up or down, or left or

right. No change in shape or size. The location

changes.

In graphing translation, all x and y coordinates of a

translated figure change by adding or subtracting.

25

Page 26: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Rotation

A rotation repositions all

points in an object along a

circular path in the plane

centered at the pivot point.

First, we’ll assume the

pivot is at the origin.

P

P’

26

Page 27: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Rotation• Review Trigonometry

=> cos = x/r , sin = y/r

• x = r. cos , y = r.sin

P(x,y)

x

yr

x’

y’

P’(x’, y’)

r

=> cos (+ ) = x’/r

•x’ = r. cos (+ )

•x’ = r.coscos -r.sinsin

•x’ = x.cos – y.sin

=>sin (+ ) = y’/r

y’ = r. sin (+ )

•y’ = r.cossin + r.sincos

•y’ = x.sin + y.cos

Identity of Trigonometry

27

Page 28: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Rotation• We can write the components:

p'x = px cos – py sin

p'y = px sin + py cos

• or in matrix form:

P' = R • P

• Rotation matrix

P(x,y)

x

yr

x’

y’

P’(x’, y’)

cossin

sincosR

28

Page 29: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Rotation

Example

Find the transformed point, P’, caused by rotating P= (5,

1) about the origin through an angle of 90.

cossin

sincos

cossin

sincos

yx

yx

y

x

90cos190sin5

90sin190cos5

0115

1105

5

1

29

Page 30: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Chapter 4 - 30

Rotating about another point

How can I rotate around another fixed point, e.g. [1, 2, 3]?

Translate [1, 2, 3] -> 0, 0, 0 (T)

Rotate (R)

Translate back (T-1)

T-1 R T P = P'

Page 31: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Chapter 4 - 31

Rotating about another axis

How can I rotate about an arbitrary axis?

Can combine rotationsabout z, y, and x:Rx Ry Rz P = P'

Note that ordermatters and anglescan be hard to find

Page 32: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Scaling• Scaling changes the size of an

object and involves two scale

factors, Sx and Sy for the x-

and y- coordinates

respectively.

• Scales are about the origin.

• We can write the components:

p'x = sx • px

p'y = sy • py

or in matrix form:

P' = S • P

Scale matrix as:

y

x

s

sS

0

0

P

P’

32

Page 33: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Scaling• If the scale factors are in between 0

and 1 the points will be moved closer to the origin the object will be smaller.

P(2, 5)

P’

• Example :

•P(2, 5), Sx = 0.5, Sy = 0.5

•Find P’ ?

33

Page 34: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Scaling• If the scale factors are in between 0

and 1 the points will be moved closer to the origin the object will be smaller.

P(2, 5)

P’

• Example :

•P(2, 5), Sx = 0.5, Sy = 0.5

•Find P’ ?

•If the scale factors are larger than 1

the points will be moved away from

the origin the object will be larger.

P’

• Example :

•P(2, 5), Sx = 2, Sy = 2

•Find P’ ?

34

Page 35: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Scaling

• If the scale factors are the same, Sx

= Sy uniform scaling

• Only change in size (as previous

example)

P(1, 2)

P’

•If Sx Sy differential scaling.

•Change in size and shape

•Example : square rectangle

•P(1, 3), Sx = 2, Sy = 5 , P’ ?

35

Page 36: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Matrix Math

Why do we use matrix?

More convenient organization of data.

More efficient processing

Enable the combination of various concatenations

Matrix addition and subtraction

a

b

c

d

a c

b d=

36

Page 37: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Matrix Math

Type of matrix

a ba

b

Row-vector Column-vector

37

Page 38: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Matrix Representation of Transformations

Translation

1100

10

01

1

y

x

t

t

y

x

y

x

38

Page 39: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Matrix Representation

Rotation

Scaling

1100

0cossin

0sincos

1

y

x

y

x

z

y

x

Sz

s

s

z

y

x

y

x

00

00

00

39

Page 40: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Composite Transformation

We can represent any sequence of transformations as a single matrix.

No special cases when transforming a point – matrix • vector.

Composite transformations – matrix • matrix.

Composite transformations:

Rotate about an arbitrary point – translate, rotate, translate

Scale about an arbitrary point – translate, scale, translate

40

Page 41: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Virtual Trackball

The use of the mouse position to control rotation about two

axes provides us with most of the functionality of a trackball.

One of the benefits of such a device is that we can create a

frictionless trackball that, once we start it rotating, will

continue to rotate until stopped by the user.

The device will support continuous rotations of objects but

will still allow changes in the speed and orientation of the

rotation.

We can also do the same for translation and other

parameters that we can control from the mouse

41

Page 42: GEOMETRIC OBJECTS AND TRANSFORMATIONS · PDF fileGeometric Objects- Scalars Points are useful in specifying geometric objects but are not sufficient by themselves. We need real numbers

Virtual Trackball42