You are on page 1of 52

2.0.

Đồ họa máy tính

2.1. Các phép biến đổi hình học

2.2. Các phép chiếu


Nội dung
2.3. Biểu diễn đường cong

2.4. Biểu diễn các bề mặt

2.5. Biểu diễn mô hình khối rắn


Đường cong trong CAD

• Đường = tập hợp các điểm


• Điểm P:
• Véc tơ trong hệ toạ độ
• Các thành phần [x y z]T Y
y
P
Xác định P thông qua xác định các
thành phần của P x
X
z

Z
Các cách biểu diễn đường (1)

Biểu diễn Đường

Không tham số Có tham số

Không tường minh Tường minh


Các cách biểu diễn đường (2)

Dạng không tham số


• Tường minh:
• Mối tương quan đơn trị (one to one)
• P = [x y(x) z(x)]T
• Không biểu diễn được các đường khép kín hoặc không
đơn trị (one to many)

• Không tường minh


• Giao của hai mặt: F(x, y, z) = 0 và G(x, y, z) = 0
• Giải hệ phương trình để tìm nghiệm
Các cách biểu diễn đường (3)

• Bất lợi của dạng không tham số


• Khó tính toán biểu diễn với các điểm có trị số tiếp tuyến
đặc biệt: 0 hoặc 
• Sự phụ thuộc vào hệ toạ độ trong việc biểu diễn đường,
vốn là tương quan giữa các điểm thuộc đường
• Việc hiển thị sử dụng tập hợp điểm không đem lại hiệu
suất hiển thị tốt
Các cách biểu diễn đường (4)

Dạng tham số (1)


• Đặc trưng
• Cho phép các hàm đa nghiệm
• Biểu diễn thông qua dạng đa thức
• Hình dáng không phụ thuộc hệ toạ độ
• Liên quan thông qua tham số tạo nên hình dáng
đường cong
• Giảm khối lượng tính toán, dễ dàng hiển thị
• Được sử dụng trong CAD/CAM
Các cách biểu diễn đường (5)

Dạng tham số (2)


• Biểu diễn
• Thông qua hàm của tham số (u)
• Tham số: vị trí trong hệ tham chiếu địa phương của
điểm
• P = [x(u) y(u) z(u)]T umin ≤ u ≤ umax
• Thông thường, umin = 0, umax = 1
Các cách biểu diễn đường (6)

Dạng tham số (3)


• Tính toán đặc trưng
• Độ dài của vector

P  Px2  Py2  Pz2


• Vector đơn vị của một vector

P
n
P
• Vector độ dốc
• P’(u) = dP(u)/du
• P’(u) = [x’(u) y’(u) z’(u)]T
Các đường trong CAD (1)

Các đường cơ bản Các đường cong tổng hợp


Đường thẳng Đường cong Hermite
Đường tròn Đường cong Bezier
Đường Ellipse Đường cong B-Spline
Thiết lập phương trình
đường cong tham số
• Vector vị trí của điểm P trên
đường cong
• Là hàm của đối số u
Các đường • Với các điều kiện biên cho trước
trong CAD (2)
Lưu ý

• Cách sử dụng PTĐC dạng tham


số để tính toán
• Phạm vi sử dụng của từng PTĐC
Đường thẳng (1)

Cách 1: Xác định thông qua 2 đầu mút


• Đầu mút:
• P1
• P2
• Tham số:
• uP1 = 0
• uP2 = 1

Thiết lập phương trình tham số của đường thẳng?


Đường thẳng (2)

• Thiết lập phương trình tham số


• Xét tam giác OPuP1

Pu  P1  P1 Pu
• Biểu diễn dưới dạng vector
P1 Pu P2
Pu  P1  ( Pu  P1 ) u=0
• Trong đó, u=1
P1 P
Pu  P1  u ( P2  P1 ) P2
• Tương đương X

 Pu  P1  u ( P2  P1 )

0  u  1
Đường thẳng (3)

• Phương trình tham số


• Rút gọn Y

P1 Pu P2
 Pu  P1  u ( P2  P1 ) u=0
u=1
 P1 P

0  u  1
P2
X
• Khai triển O

Z
 x(u )  x1  u ( x2  x1 )

 y(u )  y1  u ( y2  y1 ) 0  u 1

 z(u )  z1  u ( z 2  z1 )
Đường thẳng (4)

• Các đặc trưng cơ bản


• Véc-tơ tiếp tuyến
Y
P’ = P2 - P1
P1 Pu P2
u=0
u=1
P1 P
P2
 x'  x2  x1 X

 O

 y '  y2  y1 Z
z'  z  z
 2 1
Đường thẳng (5)

• Các đặc trưng cơ bản


• Véc-tơ đơn vị
Y

P1 Pu P2
u=0
u=1
P2  P1 P1 P
n P2
X
P2  P1 O

P2  P1  ( x2  x1 ) 2  ( y2  y1 ) 2  ( z 2  y1 ) 2
Đường thẳng (5)

• Cách 2: Xác định PT đường thẳng


dạng hàm độ dài: Y

• Biết P1 Pu P2
u=0
• Véc-tơ đơn vị u=1

• Điểm đầu
n P1 P
P2

• Biến độ dài P1 X
O
• PTĐT L
Z

 P  P1  L.n

   L  
Đường tròn (1)

• PT tham số của đường


Pn+1(xn+1,yn+1,zn+1)
tròn Pn(xn,yn,zn)
Y u
PC u
R
P(x,y,z)
 x  xc  R cos u Pc(xc,yc,zc)

 y  yc  R sin u
z  z Pc
 c

0  u  2
O
Tốc độ tính toán hiển thị ?
Z
Đường tròn (2)

Pn+1(xn+1,yn+1,zn+1)
• Công thức đệ quy Pn(xn,yn,zn)
u
 xn  xc  R cos u PC u
R
P(x,y,z)

 yn  yc  R sin u
z  z Pc(xc,yc,zc)
 n c

 xn 1  xc  R cos(u  u )

 yn 1  yc  R sin(u  u )
z  z  xn 1  xc  ( xn  xc ) cos u  ( yn  yc ) sin u
 n 1 n

 yn 1  yc  ( yn  yc ) cos u  ( xn  xc ) sin u
z  z
 n 1 n

Pn 1  f ( Pc , R,  u , Pn )
Đường tròn (3)

• Đường tròn • Cung tròn

 x  xc  R cos u  x  xc  R cos u
 
 y  yc  R sin u  y  yc  R sin u
z  z z  z
 c  c

0  u  2 us  u  uc
Ellipse (1)
Pc tâm của ellipse
P1 A, B bán trục lớn, bé
P2 u P điểm trên ellipse

B P B.sin(u)
A.cos(u)
A Pc PT tham số của ellipse
 x  xc  A cos u

 y  yc  B sin u
z  z
 c

0  u  2
Ellipse (2)

• PT hiển thị

 A
 xn 1  xc  ( xn  xc ) cos u  B ( yn  yc ) sin u

 A
y
 n 1  y c  ( yn  yc ) cos u  ( xn  xc ) sin u
 B
 zn 1  zn


Với: n = 0, nằm trên điểm cuối bán trục lớn


Đường cong tổng hợp (1)

• Yêu cầu:
• Chỉnh sửa nhanh chóng mô hình đã có
• Lưu dữ liệu cho các bước tiếp theo

http://www.geomagic.com/en/solutions/prodrive.php
Đường cong tổng hợp (2)

Hoàn thiện
Gia công

Dựng

Đo
http://www.geomagic.com/en/solutions/prodrive.php
Đường cong tổng hợp (3)

• Sự cần thiết của đường cong tổng hợp trong CAD/CAM


• Khả năng MHHHH dựa trên các điểm đo được
• Khả năng hiệu chỉnh dựa trên các đối tượng đã có
• Hiệu chỉnh toàn bộ đường cong
• Hiệu chỉnh quanh một địa phương
• Mức độ liên tục của đường cong
• Mức độ dễ dàng của việc định nghĩa và hiệu chỉnh
Đường cong tổng hợp (4)

• Sự liên tục của đường cong


• C0: sự liên tục về vị trí (Poisition)
• C1: sự liên tục về độ dốc (Slope)
• C2: sự liên tục về độ cong (Curvature)
Đường cong tổng hợp (4)
Đường cong tổng hợp (5)

• Điểm điều khiển


• Điểm cho trước để tạo ra đường cong
• Biểu diễn đường cong
• Từ nhiều mảnh đường cong
• Các mảnh có dạng đa thức
• N điểm điều khiển = (N-1) mảnh đường cong
• Bậc của đa thức
• Bậc 3 là ít nhất để đảm bảo C2
• Bậc cao khó kiểm soát hình dáng đường cong
Đường cong tổng hợp (6)

• Đường cong đi qua điểm • Đường cong không đi qua


điều khiển điểm điều khiển
• Nội suy • Xấp xỉ
• Đường nội suy • Đường cong tự do

• Hermite Spline • Bezier (C1)


bậc 3 (C1) • B-spline (C1 và C2)

• Khó điều chỉnh địa • Điều chỉnh địa phương dễ


phương. Hiệu ứng toàn bộ dàng
Đường cong tổng hợp (7)

• Xác định đường cong


• Cho
 Điều kiện biên tại các điểm điều khiển
 Công thức tổng quát của đường cong
• Xác định
 PTTS của đường cong
 PTTS của tiếp tuyến
 PTTS của độ cong
 Các đặc trưng khi xác định đường cong
• Sử dụng
 Phương trình vector
 Dạng nhân ma trận
Đường cong Hermite (1)

• Điều kiện biên:


• Điểm đầu, cuối: P0, P1
• Tiếp tuyến điểm đầu, cuối P’0, P’1

• PT tổng quát qua 3 điểm

3
P (t )   ai.t i 0  t 1
i 0
Đường cong Hermite (2)

• PTTS dạng vector


• P(t) = a3.t3 + a2.t2 + a1t + a0

• PTTS dạng ma trận


• P(t) = TTA
• Với T = [t3 t2 t 1]T Ma trận tham số
A = [a3 a2 a1 a0]T Ma trận hệ số

• Mục tiêu
• Tìm A (các đại lượng a3 a2 a1 a0)
• Sử dụng điều kiện biên với P0, P1,P’0, P’1
Đường cong Hermite (3)

• Kết luận
• a 0 = P0
• a1 = P'0
• a2 = -3P0 + 3P1 - 2P'0 + P'1
• a3 = 2P0 - 2P1 + P'0 + P'1
Đường cong Hermite (4)

• PTTS của đường cong


• P(t) = (2t3 -3t2 +1)P0 + (-2t3 + 3t2)P1 +
+ (t3 - 2t2 + t).P'0 + (t3 - t2)P'1

• PTTS của vector tiếp tuyến


• P’(t) = (6t2-6t)P0 + (-6t2+6t)P1+
+ (3t2-4t + 1)P’0 + (3t2 - 2t)P’1
Đường cong Hermite (5)

• PTTS dạng ma trận của đường cong


• P(t) = TT[MH]GH
• Trong đó
•T = [t3 t2 t 1]T Ma trận tham số
• [MH]GH = A Ma trận hệ số
• [MH] Ma trận đặc trưng
 2 2 1 1
 3 3  2  1
 
0 0 1 0
 
 1 0 0 0 
• GH = [P0 P1 P’0 P’1]T Ma trận hình học
Đường cong Hermite (6)

• PTTS dạng ma trận của tiếp tuyến


• P’(t) = TT[MH]*GH
• Trong đó
•T = [t3 t2 t 1]T Ma trận tham số
• [MH]* Ma trận đặc trưng
0 0 0 0
 6 6 3 3 
 
  6 6  4  2
 
 0 0 1 0 
• GH = [P0 P1 P’0 P’1]T Ma trận hình học
Đường cong Hermite (7)

• Với n >2
• Ghép các mảnh đường cong

• Sử dụng điều kiện C1 để có PT tiếp


tuyến chung

• Điều kiện biên thực tế:


• Toạ độ của Bộ điểm điều khiển
• Vector tiếp tuyến điểm đầu (0) và điểm
cuối (n)
Đường cong Bezier (1)

• Đặc điểm
• Không sử dụng tiếp tuyến
• Chỉ sử dụng điểm điều khiển
• Bậc phụ thuộc vào số điểm
điều khiển (n)
• Bậc = n – 1
• Trơn hơn Hermite Spline
• Uyển chuyển trong việc điều
khiển
Đường cong Bezier (2)
Sử dụng hàm trộn là
đa thức Bernstein
n
P(t )   PiBi , n(t )
i 0

Bi,n(t) = C(n,i).ti.(1 - t)n-i 0  t 1


i = 0 ,..,n
n!
C (n, i ) 
i!(n  i )!
Đường cong Bezier (3)

• Tìm PTTS của đường cong


• Tìm bậc của đường cong thông qua số điểm điều khiển
(n+1)
• Viết biểu thức hàm trộn cho từng đoạn điều khiển
• Kết hợp với các điểm điều khiển để viết biểu thức của
đường cong
Đường cong Bezier (4)

• PTTS của đường cong dạng vector (bậc 3)


 P0
 P1 
P(t)  [(1 - t)3 3t(1 - t)2 3t2(1 - t) t3 ]  
 P2
 
 P3
• PTTS của đường cong dạng ma trận (bậc 3)
• P(t) = TT[MB]GB
T = [t3 t2 t 1]T MT tham số
GB = [P0 P1 P2 P3]T MT hình học
[MB] 1 3  3 1 MT đặc trưng
 3 6 3 0

 3 3 0 0
 
1 0 0 0
Đường cong Bezier (5)

• Đặc điểm
• Đi qua điểm đầu và điểm cuối, xấp xỉ các điểm giữa
• Tiếp tuyến với đoạn đầu và cuối của đa cạnh tạo bởi
các điểm điều khiển
• Đối xứng với tham số (t) và (1-t)
• Hình dáng đường cong không phụ thay đổi nếu đổi
chiều định nghĩa điểm điều khiển
• Ảnh hưởng của các điểm điều khiển thay đổi khi (t)
thay đổi, thông qua trọng số
• Cho phép các đường cong khép kín
Đường cong Bezier (6)

• Tính chất thân lồi (Convex-


Hull property)
• Đường cong luôn nằm trong trong thân
lồi
• Sử dụng thân lồi thay cho đường cong
trong một số tính toán
• Đường cong có xu hướng theo đoạn gấp
khúc tạo bởi các điểm điều khiển
Đường cong Bezier (7)

• Điều khiển đường cong


• Điều khiển toàn bộ đường cong thông qua điểm đầu điểm cuối
• Điều khiển độ cong cục bộ thông qua các điểm ở giữa
Đường cong B-spline (1)

• Biểu thức
n
P( u )   Pi N i ,k ( u ) 0  u  u max
i 0

• Pi Điểm điều khiển


• Ni,k(u) Các hàm trộn (hàm B-Spline)
• (k-1) Bậc của đường cong, không phụ
thuộc vào số điểm điều khiển (n+1)
•u Tham số, không giới hạn trong khoảng
[0,1]
Đường cong B-spline (2)

Ni,k(u) Các hàm trộn (hàm B-Spline)

n
1) N
i 0
i ,k (u )  1

2) N i ,k ( u )  0

3) N i ,k (u )  0 nếu u  u i ; u i  k 1 
4) N i , k (u ) Có (k-2) lần vi phân liên tục
Đường cong B-spline (3)

Ni,k(u) Các hàm trộn (hàm B-Spline)

1) Bất biến trong BĐHH

2) Luôn nằm phía > 0 của điểm ĐK

3) Chỉ chịu ảnh hưởng của k điểm ĐK

4) Đường cong trơn


Đường cong B-spline (4)

Tính toán các hàm trộn Ni,k(u) theo công thức đệ quy
• Là đa thức bậc (k-1)

N i ,k 1 (u ) N i 1,k 1 (u )
N i ,k (u )  (u  u i )  (u i 1  u )
u i  k 1  u i u i  k  u i 1
• Với (k = 1)

1 ui  u  u i  1
N i ,1  
0 
• ui là các nút tham số
• [ui] vector nút, là 1 dãy số nguyên không giảm
Đường cong B-spline (5)

Tính toán vector nút (S-pline mở)

0 jk

u j   j  k  1 k  j  n (n) điểm ĐK bậc (k - 1)
n  2  k jn

0 j nk (n + k + 1) nút

miền của u 0u  nk 2

0 uj-1 uj uj+1 n–k+2


Đường cong B-spline (6)

• Điều khiển cục bộ


• Pi chỉ có ảnh hưởng đến k đoạn quanh điểm điều khiển
• Sử dụng nhiều điểm điều khiển trùng nhau để kéo spline về điểm
đó.
• Xấp xỉ điểm điều khiển
• Bậc của đường cong càng thấp thì dạng càng gần với điểm điều
khiển
• k = 1 -> bậc 0: B-spline = điểm điều khiển .
• k = 2 -> bậc 1: B-spline = đa giác điều khiển.
• k = 3 -> bậc 2: B-spline tiếp tuyến điểm 1/2 các đoạn ĐK
• k = (n+1): B-spline suy biến thành đường Bezier
Đường cong B-spline (6)

•S-pline mở

•Nội suy
• Qua điểm đầu và điểm cuối của đa giác điều
khiển

•Tiếp tuyến
• Với đoạn (P1-P0) và (Pn+1-Pn)
Bài tập (1)

1. Tìm tâm PCcủa đường tròn ngoại tiếp tam giác P1P2P3
biết toạ độ các đỉnh. Sử dụng phương trình tham số.

2. Tìm phương trình hiển thị dạng đệ quy cho ellipse (có
bán trục lớn) nghiêng góc alpha với trục hoành.

3. Viết phương trình ellipse định nghĩa bởi hình chữ


nhật
a) Hình chữ nhật ABCD Nội tiếp ellipse
b) Hình chữ nhật ABCD Ngoại tiếp ellipse
Bài tập (2)

4. Tìm phương trình đường cong biết các điểm điều


khiển. Tính toán các điểm trên đường cong ứng với
các giá trị đã cho của tham số.
a) Hermite spline bậc 3
b) Bezier bậc 3
c) B-spline

5. Tìm các điểm điều khiển biết PTTS của đường cong
a) Hermite spline bậc 3
b) Bezier bậc 3
c) B-spline

You might also like