Nếu chọn Δy=1, thì x kế tiếp được tính như sau Tương tự nếu B nằm bên trái, A nằm bên phải thì... Giả sử điểm xi, yi đã được vẽ.. Xét khoảng cách giữa hai điểm chọn với điểm nằm trên
Trang 1Computer Graphic
NGUY N ĐÌNH C Ễ ƯỜ NG KHOA CÔNG NGH THÔNG TIN Ệ
Đ I H C NHA TRANG Ạ Ọ Email:cuongnd@ntu.edu.vn
Trang 2Đi m ể
Ví d : Trong m t ph ng m t đi m là m t c p (x,y) ụ ặ ẳ ộ ể ộ ặ
Trong không gian 3 chi u, m t đi m là b ba (x,y,z) ề ộ ể ộ
Trang 3Các bi u di n t a đ ể ễ ọ ộ
Trang 4Đo n th ng ạ ẳ
Trong h th ng đ h a, các đo n th ng đ ệ ố ồ ọ ạ ẳ ượ c bi u th b i vi c “tô” đo n th ng ể ị ở ệ ạ ẳ
b t đ u t đ u mút này kéo dài cho đ n khi g p đi m đ u mút kia ắ ầ ừ ầ ế ặ ể ầ
Trang 7Thu t toán sinh đo n th ng ậ ạ ẳ
Trang 8DDA = Digital Differential Analyser
Xét đ ườ ng th ng có h s góc 0<m≤1 (gi s đi m A n m bên trái và đi m cu i ẳ ệ ố ả ử ể ằ ể ố
b n m bên ph i) ằ ả
N u ch n ế ọ Δx=1, y k ti p đ ế ế ượ c tính nh sau: ư
Trang 9Với m>1, hoán đổi vai trò x, y cho nhau Nếu chọn Δy=1, thì
x kế tiếp được tính như sau
Tương tự nếu B nằm bên trái, A nằm bên phải thì
Trang 10Sơ đồ thuật toán DDA
Trường hợp 0<m≤1
Trang 11Thuật toán Bresenham (0<m
≤1)
Phương trình đường thẳng:
y =mx +b (1)
Trang 12Thuật toán Bresenham (0<m ≤1)
(2) (4)
Trang 13Giả sử điểm (xi, yi) đã được vẽ Ta phải chọn điểm kế tiếp là (xi+1, yi), hay
(xi+1, yi+1) Xét khoảng cách giữa hai điểm chọn với điểm nằm trên
đường thực Nếu khoảng cách nào bé hơn thì ta láy điểm đó
Trang 14Thuật toán Bresenham (0<m ≤1)
Trang 15Thuật toán Bresenham (0<m ≤1)
Trang 16Tóm t t ắ
Trang 18Thu t toán MidPoint ( ậ 0<m ≤1)
Thu t toán này đ a ra cách ch n đi m S(x ậ ư ọ ể i +1, y i ) hay P(x i +1, y i +1) b ng cách so sánh đi m th c ằ ể ự Q(x i +1, y) v i đi m M (trung đi m c a S và P) ớ ể ể ủ
Trang 19Thuật toán MidPoint ( 0<m ≤1)
Trang 20Thuật toán MidPoint ( 0<m ≤1)
Ta có dạng tổng quát phương trình đường thẳng:
Ax + By + C =0
Với A=y2-y1, B= -(x2-x1), C=x2.y1-x1.y2
Đặt F(x, y) = Ax + By + C , ta có nhận xét
Trang 21Thuật toán MidPoint ( 0<m ≤1)
Lúc này, việc chọn các điểm S hay P được đưa về việc xét dấu của:
· Nếu pi <0 => M nằm trên đoạn thẳng => Q
nằm dưới M => Chọn S
· Nếu pi ≥ => M nằm dưới đoạn thẳng => Q
nằm trên M => chọn P
Trang 22Thuật toán MidPoint ( 0<m ≤1)
Mặt khác
Nên
Trang 23Thuật toán MidPoint ( 0<m ≤1)
Trang 24Thuật toán vẽ đường tròn
Xét đường tròn (C) tâm O(xc, yc) bán kính R
Phương trình tổng quát
Để đơn giản đầu tiên ta xét đường tròn có tâm góc tọa độ (xc=0, yc=0)
Do tính đối xứng của đường tròn nên:
(x,y ) thuộc (C)thì các điểm (y,x), (-y,x), (-x,y), (-x,-y), (-y,-x), (y,-x), (x,-y) cũng (C)
Vẽ một phần tám rồi lấy đối xứng
Trang 25Thu t toán v đ ậ ẽ ườ ng tròn
Thu t toán Bresenham ậ
Thu t toán Midpoint ậ
Trang 26Bresenham – Vẽ đường tròn
▪ Giả sử (xi, yi ) đã vẽ được Cần chọn điểm kế tiếp là (xi+1, yi) hoặc (xi+1,yi--1)
Trang 27Bresenham – Vẽ đường tròn
Trang 28Bresenham – Vẽ đường tròn
Trang 29Bresenham – Vẽ đường tròn
Trang 30Thuật toán MidPoint-Vẽ đường tròn
Trang 31Thuật toán MidPoint-Vẽ đường tròn
Trang 33Thuật toán MidPoint-Vẽ đường tròn
Trang 34Bài tập
Trang 43Computer Graphic
Trang 44Pi( t)=(1−t) Ai+ t Bi
Trang 45[cos θ 0 0 sin θ /z cp
sin θ 0 0 −cosθ / z cp
0 m 0 (1−n / z cp)]
Trang 46[T R] θZ =[−sin θ cosθ 0 0cos θ sin θ 0 0
Trang 48BI N HÌNH TRONG KHÔNG GIAN UNITAR Ế
Trang 50I= Is Kdcosθ
Gouraud vecto trung bình
Phong, ph ươ ng pháp n i suy ộ
Trang 51Phong, ph ươ ng pháp n i suy ộ
Trang 52Nhân 2 Ma trận
Mô hình 3D
Trang 55Đ ườ ng cong Bezier
Trang 58VONOROI
Trang 60BÀI TOÁN ĐA GIÁC
Trang 61value
Trang 65Hệ thống xử lý tín hiệu 2 chiều
2.1 Một số tín hiệu 2 chiều cơ bản 2.1.1 Xung Dirac và xung đơn vị:
t0
0
; )
(
t
t t
Biểu diễn dưới dạng công thức
Xung đơn vị, tác động tại thời điểm t=0
0 1
) (
n
n n
(n)
n0
Tại thời điểm n0 tác động là (n-no)
Một tín hiệu S(n), được biểu diễn tổng quát như sau
k S n
S ( ) ( ) ( )
Trang 660 0
0 ,
0 )
,
(
y x
y
x y
x
y
x0
0 0
0 ,
0
1 )
,
(
n m
n
m n
k S n
m
Dùng cho tín hiệu liên tục
Dùng cho tín hiệu rời rạc
Trang 67Hệ thống xử lý tín hiệu 2 chiều(tt) 2.1.2 Tín hiệu đơn vị và bước nhảy đơn vị
0 1
) (
t
t t
t u
0)(0
t u t
t u t
Bước nhảy đơn vị:
01
)(
n
n n
0 1
) (
k n
k n k
n u
Trang 680 0
0 ,
0 1
) , (
y x
y x
y x u
y
xu(x,y)
Với tín hiệu rời rạc
0 0
0 ,
0 1
) , (
n m
n m
n m
m
u ( , ) ( , )
Một số tính chất với tín hiệu phân tách được
) ( ) ( )
,
) ( ) ( )
,
) ( ).
( )
, ( m n m n
Trang 69Hệ thống xử lý tín hiệu 2 chiều(tt)
2.2.1 Toán tử hệ thống
T[.]
S(x,y)S(m,n)
z(x,y)
y x S T y x z
)]
,([),(
)]
,([),(
,(),()
,(
),(),(),()
,(),(),
y x kz y
x kS const k
y x z y x z y x z y
x S y x S y x S
T T
x
Z( , ) [ ( , )] [ ( , )( , ) ] ( , ) [( , )]
: gọi là đáp ứng xung của hệ thống tuyến tính bất biến
v u y x h v y u x
T[( , )] ( , ; , )
Trang 70Hệ thống xử lý tín hiệu 2 chiều(tt)
Với hệ thống tuyến tính bất biến dịch ta có
v y u x h v y u x T
v y u x h v u y x h
y x h u
x h
),()]
,([
),(),,,(
),()0,0
;,(
),(),()
,(
y x h y x S y x Z
dudv v y u x h v u S y
x Z
),(),()
,(
n m h n m S n m Z
l n k m h l k S n
m Z
),(),(),(m n S m n h m n
n
-11
h(m,n)
m
)1,1(),1()1,(),(
)1,1()1,1(),1()0,1()1,()1,0(),()0,0(
)1,1(),1()
,(),0()
,(),(
),(),()
,(),(),(
1 0
1 0
1 0
1 0
m h n m h
n m h S n m h S n
m h S n m h S
n m h l S l
n m h l S l
n k m xh l k S
l n k m xh l k S n
m h n m S n m x
k l
Áp dụng công thức
Trang 71Hệ thống xử lý tín hiệu 2 chiều(tt)
)1,1(),1()1,(),(
)1,1()1,1(),1()0,1()1,()1,0(),()0,0(
)1,1(),1()
,(),0()
,(),(
),(),()
,(),(),(
1 0
1 0
1 0
1 0
m h n m h
n m h S n m h S n
m h S n m h S
n m h l S l
n m h l S l
n k m xh l k S
l n k m xh l k S n
m h n m S n m x
k l
n
41
h(m,n)
m
3200
0
n
00h(m-1,n-1)
3h(m,n-1)
0 0 0n
-10
-2 -3-h(m-1,n)
m-40
Trang 72n k m g l k S
n m S n m g n m g n
m
S
),(),()
,(),(
),(),(),(),
(
b Tính kết hợp
Với các S1(m,n), S2(m,n) và S3(m,n) ta có:
( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ))
Ghép nối tiếp 2 hệ thống h1 và h2 là ghép đầu ra của h1 nối vào đầu
S(m,n)
Trang 73Hệ thống xử lý tín hiệu 2 chiều(tt)
Ta có
( , ) ( , ) ( , ) ( , ) ( , ))
,(
),(),(),(),()
,(),(),(
),(),(),(
),(),(),(
1 2
1 2
2 1
2 1
1 1
2
n m h n m h n m S n m h n m h n m S
n m h n m h n m S n m h n m h n m S n m g
n m h n m S n m
v
n m h n m v n m g
g(m,n)S(m,n)
c Tính ch t phân ph i v i phép c ng ấ ố ớ ộ
V i các tín hi u Sớ ệ 1(m,n), S2(m,n) và S3(m,n) ta có:
( , ) ( , ) ( , ) ( , ) ( , ) ( , ))
,
Trang 74Ta có
( , ) ( , )
),(
),(),(),(),(
),(),(),(
2 1
2 1
2 1
n m h n m h n m S
n m h n m S n m h n m S
n m g n m g n m g
Trang 75-11
h3(m,n)
mn
11
),(),(),(),(),(),(
3 2
1
3 2
n m h n m h n m h n m S
n m h n m h n m S n m h n m S n m g
,1()1,(),(
)1.1()1,1(),1()0,1()1,()1,0(),()0,0(
),1(),1()
,(),0(
),(),()
,(),(
3 3
3 3
3 2 3
2 3
2 3
2
1 0
3 2
1 0
3 2
1 0
1 0
3 2
3 2
m h n m jh
n m h h n m h h
n m h h
n m h h
l n m h l h l
n m h l h
l n k m h l k h n
m h n m h
l l
k l
Tính riêng: h2(m,n)h3(m,n)
Trang 76m h n m
S( , ) ( , ) ( , ) ( , )
Khai tri n công th c trên v i S(m,n) và H(m,n) ta s thu để ứ ớ ẽ ược tín hi u ra G(m,n).ệ
Trang 78w x +b=0
Trang 82PCA
Trang 84gcc -o accum accum.c -lglut -lGLU -lGL -lm
apt-get install freeglut3-dev
OPENGL
Trang 87DISCUSSION
E=m.c 2
Trang 88[1] Fundermantal of Computer Graphic,3rd Peter Shirley and Steve Marscher [2] Computer Graphic princle and practise, John F, Hughes.
[3] Foundations of 3D Computer Graphics, Steven J Gortler
[4] Introduction to Computer Graphics, David J Eck
[5] Computer Graphic C version
[6] Đ h a máy tính và mô hình hóa hình h c, VERA B.ANAND, Nhà xu t b n ồ ọ ọ ấ ả Thành Ph H Chí Minh, 2000 ố ồ
[7] The Algorithm Design Manual, Steven S Skiena
[8] Point-Based Graphic, Markus gross and Handspeter PFISTER
[9] Foundation of Machine Learning, Mehryar Mohri, Afshin Rostamizadeh, Ameet Talwakar
[10] M t s hình nh ví d đ ộ ố ả ụ ượ c search t internet ừ