You are on page 1of 44

Bi Tp Ho My Tnh

Th.S. Cao Xun Nam

V ng thng
Cc trng hp
1. 0<m1 v dx>0
2. 0<m1 v dx<0
3. m>1 v dy>0
4. m>1 v dy<0
5. -1 m<0 v dx>0
6. -1 m<0 v dx<0
7. m<-1 v dy>0
8. m<-1 v dy<0

V ng thng - DDA
Bi tp 1:
Thit k thut ton DDA v on thng i qua 2 im
(x1,y1); (x2,y2) c hsg 0<m1 v dx>0
(Xem cch trnh by trong gio trnh Dng Anh c, L
nh Duy LineDrawing.pdf - trang 2-5)

V ng thng - DDA
Bi tp 2:
S dng thut ton DDA v on thng AB vi
A(2,2), B(6,5)
Bi tp 3:
S dng thut ton DDA ri rc ho on thng AB
vi A(2,2), B(6,5)

V ng thng - DDA

H s gc ca t AB l :

Y
YB YA
5 2 3
m=
=
=
=
X XB XA 6 2 4

X = XB XA = 6 2 = 4

V h s gc m [0,1] v X > 0 nn on thng AB l


on thng tng chm vi im u nm bn tri

V ng thng - DDA
ni

xi

yi

11/4

14/4

17/4

20/4

Xi+1=Xi+1
Yi+1 =Yi+m

V ng thng - Bresenham
Bi tp 1:
Thit k thut ton Bresenham v on thng i qua 2
im (x1,y1); (x2,y2) c hsg 0<m1 v dx>0
(Xem cch trnh by trong gio trnh Dng Anh c, L
nh Duy LineDrawing.pdf - trang 2,6-10)

V ng thng - Bresenham
Bi tp 2:
S dng thut ton Bresenham v on thng AB
vi A(2,2), B(6,5)
Bi tp 3:
S dng thut ton Bresenham ri rc ho on
thng AB vi A(2,2), B(6,5)

V ng thng - Bresenham

H s gc ca t AB l :

Y
YB YA
5 2 3
m=
=
=
=
X XB XA 6 2 4

X = XB XA = 6 2 = 4

V h s gc m [0,1] v X > 0 nn on thng AB l


on thng tng chm vi im u nm bn tri

V ng thng - Bresenham
pi

P1 = 2 Y X

ni

xi

yi

Yi + 1 = Yi

-2

Pi + 1 = Pi + 2 Y

Pi < 0
X i +1 = X i + 1

Pi 0
X i +1 = X i + 1
Yi + 1 = Yi + 1
Pi + 1 = Pi + 2( Y X )

V ng thng - MidPoint
Bi tp 1:
Thit k thut ton MidPoint v on thng i qua 2
im (x1,y1); (x2,y2) c hsg 0<m1 v dx>0
(Xem cch trnh by trong gio trnh Dng Anh c, L
nh Duy LineDrawing.pdf - trang 2,11-12)

V ng thng - MidPoint
Bi tp 2:
S dng thut ton MidPoint v on thng AB vi
A(2,2), B(6,5)
Bi tp 3:
S dng thut ton MidPoint ri rc ho on
thng AB vi A(2,2), B(6,5)

V ng trn - MidPoint
Bi tp 1:
Thit k thut ton MidPoint v ng trn c tm l
(xc,yc), bn knh R v mu v l color
(Xem cch trnh by trong gio trnh Dng Anh c, L
nh Duy LineDrawing.pdf - trang 15-20)

V ng cong bc 2
Bi tp 1:
Thit k thut ton MidPoint v ellipse c tm l
(xc,yc), bn knh R v mu v l color
(Xem cch trnh by trong slide bi ging Bi Tin Ln
chng 1c - slide 7-14. V lu thut ton v vit hm v
ellipse)
Lu : cc cng thc trong slide phi chng minh c th (nu
c thi gian).

V hnh khc
Bi tp 1:
nh ngha hm v tam gic u tm (xc,yc) bn knh
R

V hnh khc
A

S o ca cung b chn
bi gc tm bng s
o ca gc tm chn
cung .
Trong mt ng trn,
s o ca gc ni tip
bng na s o ca cung
b chn

V hnh khc
A

Xc nh to cc
nh ca i tng
cn v
V cc on thng
mt cch hp l
ni cc nh ny vi
nhau

V hnh khc
A

void TamGiaDeu(int xc, int yc, int R, int color)


{
int x[3];
int y[3];
float phi = PI/2;
for(int i=0; i<3; i++)
{
x[i] = xc + int(R*cos(phi)+0.5);
y[i] = yc + int(R*sin(phi)+0.5);
phi += 2*PI/3;
}
C
SetColor(color);
for(int i=0; i<3; i++)
{
Line(x[i], y[i], x[(i+1)%3], y[(i+1)%3]];
}
}

V hnh khc
Bi tp 2:
nh ngha hm v ngi sao 5 cnh rng tm (xc,yc)
bn knh R

V hnh khc
A

B
r

nh l hm s sin:
Trong mt tam gic t l
gia di ca mi
cnh vi sin ca gc i
din l nh nhau cho c
ba cnh
r
R
=

sin( BAO) sin( AB O)

V hnh khc
A

B
r

void NgoiSaoRong(int xc, int yc, int R, int color)


{
int x[5];
int y[5];
int xp[5];
int yp[5];
float phi = PI/2;
float r = R*sin(PI/10)/sin(7*PI/10);
for(int i=0; i<5; i++)
{
x[i] = xc + int(R*cos(phi)+0.5);
y[i] = yc + int(R*sin(phi)+0.5);
xp[i] = xc + int(r*cos(phi+PI/5)+0.5);
yp[i] = yc + int(r*sin(phi+PI/5)+0.5);
phi += 2*PI/5;
}
SetColor(color);
for(int i=0; i<5; i++)
{
Line(x[i], y[i], xp[i], yp[i]];
Line(xp[i], yp[i], x[(i+1)%5], y[(i+1)%5]];
}
}

T mu
Bi tp 1:
Hy cho bit th t cc pixel c t mu trong hnh
v sau. S dng thut ton t mu ln cn 4 quy v
im u tin c t mu l (5G)

T mu
Bi tp 2:
Hy cho bit th t cc pixel c t mu trong hnh
v sau. S dng thut ton t mu ln cn theo im ht
ging v im u tin c t mu l (5G)

T mu
Bi tp 3:
nh ngha hm t mu phn giao (nu c) ca hai
hnh ch nht
- Rectagle1( l1,t1,r1,b1,color)
- Rectagle2( l2,t2,r2,b2,color)

T mu
Bi tp 4:
nh ngha hm t mu phn giao gia on thng
nm ngang A(x1,y1), B(x2,y2) vi hnh trn tm
C(xc,yc), bn knh R.

T mu
Bi tp 4:
nh ngha hm t mu phn giao gia on thng
nm ngang A(x1,y1), B(x2,y2) vi hnh trn tm
C(xc,yc), bn knh R.

ng cong
Bi tp 1:
a. Vit hm nhp vo hm mt a thc v min i s
ca a thc
y=f(x)=a0 + a1 x+ a2 x2+...+ an xn vi x[xmin ,xmax ]

b. Vit hm v a thc trn.


(Tham kho ng cong c biu din bng hm s
bi ging Bi Tin Ln slide 3-8)

ng cong
Bi tp 2:
Vit phng trnh tham s ng cong Bezier i qua 4
im iu khin A(2,4), B(5,7), C(7,4) v D(10,6)

ng cong
Bi tp 3:
Cho ng cong Bezier C1 vi 4 im iu khin sau
{(2,2), (2,4), (6,5), (6,3) }
- Lp PTTS ca ng cong C1
- Kim tra im A(4,4), B(5,4) c thuc ng cong
C1 khng? Ti sao?
- Xc nh thng ca ng cong C1
- Cho ng cong Bezier C2 vi 4 im iu khin
{(6,3),(7,1),(8,1),(9,3) }. Kim tra xem im ni gia C1,
C2 c trn (lin tc bc 1) khng?

Affine
Bi tp 1:
- Xc nh nh tam gic ABC bit A(0,0), B(1,0),
C(0,2) qua php quay quanh im I(2,2) mt gc 90o.

Affine
Bi tp 2:
- Tm php bin i affine T bin A thnh B, B thnh
C, C thnh D, D thnh E, E thnh F v F thnh A. Bit
ABCDEF l lc gic u, A(4,7), D(6,3)
- Hy xc nh nh ca tam gic MNP qua php bin
i affine T trn. Bin M(-1,1), N(-2,2), P(4,2).

Affine
Bi tp 3:
- Hy p dng phng php phn r tm php bin
i T bin t gic ABCD thnh ABCD. Bit A(1,1),
B(3,1), C(3,3), D(1,3); A(5,4), B(4,4), C(8,8), D(9,8)

Affine
Bi tp 4:
- Hy p dng phng php i s tm php bin
i T bin t gic ABCD thnh ABCD. Bit A(1,1),
B(3,1), C(3,3), D(1,3); A(5,4), B(4,4), C(8,8), D(9,8)

Xn Cohen-Sutherland
Bi tp 1:
- Trnh by thut ton Cohen-Sutherland xn on
thng bng ca s hnh ch nht. p dng xn on
thng AB bng ca s W. Bit A(10,0), B(0,20) v P(0,0),
Q(5,10) vi P,Q ln lt l to gc tri trn v gc
phi di ca ca s W.

Xn Cohen-Sutherland
Quy c m vng
Left

Right

Bottom

Top

Quy c mt im nm trn cnh khung xn xem l


nm bn trong hay bn ngoi
Mt im nm trn cnh khung xn xem l nm bn trong

Xn Cohen-Sutherland
Hnh v m vng
C (1 0 0 1)

C ( 0 0 0 1)

C (1 0 0 0 )

C ( 0 0 0 0)

C (1 0 1 0 )

C ( 0 0 1 0)

C ( 0 1 0 1)

C ( 0 1 0 0)

C ( 0 1 1 0)

Xn Cohen-Sutherland
Cc trng hp
TH1

TH2

TH3

TH4

C1(0000)

C2(0000)

Hai im P1, P2 cng nm trong khung


xn

Kt qu xn Q1Q2 = P1P2

C1(1???)

C2(1???)

P1,P2 cng nm bn tri

C1(?1??)

C2(?1??)

P1,P2 cng nm bn phi

C1(??1?)

C2(??1?)

P1,P2 cng nm bn di

C1(???1)

C2(???1)

P1,P2 cng nm bn trn

C1(0000)

C2(????)

P1 nm trong khung xn

Hon v P1,P2

C1(1???)

C2(0000)

P1 nm ngoi khung xn

Xn bng cnh tri

C1(?1??)

C2(0000)

Xn bng cnh phi

C1(??1?)

C2(0000)

Xn bng cnh di

C1(???1)

C2(0000)

Xn bng cnh trn

Kt qu xn Q1Q2 =

Xn Cohen-Sutherland
Lp phng trnh chnh tc cho on thng P1P2
Lp bng (bng bn di mang tnh cht minh ho)
A

CA

CB

Trng hp

(-1,0)

(4,7)

1000

0001

TH4 , ct tri

(0,7/5)

(4,7)

0000

0001

TH3, hon v

(4,7)

(0,7/5)

0001

0000

TH4, ct trn

(0,7/5)

(13/7,4)

0000

0000

TH1, dng

Kt lun

Xn - Liang-Barsky
Bi tp 2:
- Trnh by thut ton xn on thng Liang-Barsky.
- p dng xn on thng P1(-5,-6), P2(5,7) bng ca
s W={tri=-4, phi=4, di=-4, trn=4}.

Xn Liang-Barsky
-

Phng trnh tham s ca on thng P1P2


x = P1 x + ( P2 x P1 x )t

y = P1 y + ( P2 y P1 y )t

0 t 1

Mt im P(x,y) thuc ca s W(l, r, b, t) khi


left x right

bottom y top

Xn Liang-Barsky
-

Mt im thuc on thng P1P2 v thuc ca s W


khi tho cc iu kin sau:

left P1x + ( P2 x P1x )t right

bottom P1 y + ( P2 y P1 y )t top

0 t 1

Gii h bt pt v kt lun.

Xn - Sutherland-Hodgeman
Bi tp 3:
- Trnh by thut ton xn a gic SutherlandHodgeman.
- p dng xn a gic ABCDEFGHI bng ca s hnh
ch nht W.
C
A

B
G

Xn Sutherland-Hodgeman
Bc 1
OUT = {}
Bc 2
Lp
p : p0 ... pn-1
s l nh k trc ca p
th1 : p bn trong, s bn trong
th2 : p bn ngoi, s bn trong
th3 : p bn ngoi, s bn ngoi
th4 : p bn trong, s bn ngoi

Xn

J
G

v tr P

v tr S

TH

OUT

Ngoi

Ngoi

{}

Trong

Ngoi

{J,B}

Trong

Trong

{J,B,C}

You might also like