[0, 10], P1 = [10, 40], P2 = [40, 40], P3 = [50, 0] có bậc p =3. Tính tọa độ [Cx, Cy] của điểm C[u] trên đường cong ứng với tham số tự chọn u ∈ [0, 1]
Phương trình biểu diễn đường cong B-spline bậc 3 [p = 3] đồng nhất có 4 đỉnh điều khiển P0, P1, P2, P3:
C[u]=
C[u]= N0,3[u]P 0 + N1,3[u]P 1 + N2,3[u]P 2 + N3,3[u]P 3
Với các hàm cơ sở Ni,3[u] được xác định [u = 0]:
N0,3[u] = [1-u] 3 = 0.
N1,3[u] = [3u 3 -6u 2 + 4] = 0.
0 p= [2dx]-dy 21; 1 0 p>=0 x1 =x1+ y1 = y1+ p= p+[2dx]-[2*dy]
22;
2 -8 p=0 x3 =x3+ y3 = y3+ p= p+[2dx]-[2dy]
23;
4 -8 p=0 x5 =x5+ y5 = y5+ p= p+[2dx]-[2dy]
24;
6 -8 p=0 x7 =x7+ y7 = y7+ p= p+[2dx]-[2dy]
25;
8 -8 p=0 x1 =x y1 = y1+ p=p+2[dx-dy]
21;
2 0 p>=0 x2 =x y2 = y2+ p=p+2[dx-dy]
21;
3 -8 p=0 x4 =x y4 = y4+ p=p+2[dx-dy]
22;
5 0 p>=0 x5 =x y5 = y5+ p=p+2[dx-dy]
22;
6 -8 p=0 x7 =x y7 = y7+ p=p+2[dx-dy]
23;
8 0 p>=0 x8 =x y8 = y8+ p=p+2[dx-dy]
23;
9 -8 p=0 x10 =x y10 = y10+ p=p+2[dx-dy]
24;
11 0 p>=0 x11 =x y11 = y11+ p=p+2[dx-dy]
24;
12 -8 p0 x=x- y=y+ p=p+2x-2y+
[15;16]
Kết quả các điểm được tạo ra với các cung 45:
Quadrant- [X,Y]
Quadrant- [-X,Y]
Quadrant- [-X,-Y]
Quadrant- [X,-Y] [21,11] [-21,11] [-21,-11] [21,-11] [20,11] [-20,11] [-20,-11] [20,-11] [19,12] [-19,12] [-19,-12] [19,-12] [18,13] [-18,13] [-18,-13] [18,-13] [17,14] [-17,14] [-17,-14] [17,-14] [16,15] [-16,15] [-16,-15] [16,-15] [15,16] [-15,16] [-15,-16] [15,-16] [16,15] [-16,15] [-16,-15] [16,-15] [15,16] [-15,16] [-15,-16] [15,-16] [14,17] [-14,17] [-14,-17] [14,-17] [13,18] [-13,18] [-13,-18] [13,-18] [12,19] [-12,19] [-12,-19] [12,-19] [11,20] [-11,20] [-11,-20] [11,-20] [11,21] [-11,21] [-11,-21] [11,-21]
Nội dung Text: Bài giảng Đồ họa máy tính: Các phép biến đổi 2D
- 2D Transformations Các phép biến đổi 2D 1
- Giới thiệu • Bản chất của phép biến đổi hình học là thay đổi vị trí của đối tượng, làm thay đổi đối tượng về hướng, kích thước, hình dạng. • Hai phương pháp để biến đổi hình học: – Biến đổi đối tượng: thay đổi tọa độ của đối tượng. – Biến đổi hệ tọa độ: tạo hệ tọa độ mới và tất cả đối tượng sẽ được chuyển về hệ tọa độ mới. • Các phép biến đổi hình học cơ bản: tịnh tiến, quay, biến đổi tỉ lệ, biến dạng. 2
- Phép biến đổi hình học • Một phép biến đổi là một ánh xạ T: T : R2 → R2 x ' = f [ x , y ] P [x ,y ] Q[x ',y '] y ' = g [ x , y ] P[x,y] Q[x’,y’] 3
- Phép biến đổi hình học [cont.] • Phép biến đổi Affine là phép biến đổi với f[x,y] và g[x,y] là 2 hàm tuyến tính: x ' = ax + by + c y ' = dx + ey + f • Biểu diễn phép biến đổi Affine dưới dạng ma trận: x ' a b c x y ' = d e f y ⇔ Q = T .P 1 0 0 1 1 • Thông thường, chúng ta chỉ khảo sát phép biến Affine nên ta thường dùng thuật ngữ phép biến đổi để ngụ ý là phép biến đổi Affine. 4
- Phép tịnh tiến - Translation • Phép tịnh tiến dùng để dịch chuyển đối tượng từ vị trí này sang vị trí khác. Q try P trx 5
- Phép tịnh tiến [cont.] • Gọi tr = [trx , try] là vector tịnh tiến từ điểm P đến điểm Q thì: x ' = x + tr x y ' = y + tr y • Ma trận biến đổi của phép tịnh tiến: 1 0 tr x T [tr x , tr y ] = 0 1 tr y 0 0 1 6
- Phép quay - Rotation Q • Đổi hướng đối tượng. • Phép quay gồm có tâm quay C, góc quay α. • Biến đổi điểm P thành Q sao cho: α P – P và Q nằm trên đường tròn tâm C, – Góc PCQ bằng α C • Do vị trí của tâm quay nên ta có 2 loại phép quay: – Phép quay quanh gốc tọa độ – Phép quay quanh một tâm bất kì • Góc quay theo qui ước chiều dương là ngược chiều kim đồng h ồ. + 7
- Phép quay một góc α quanh gốc tọa độ Q α P α O O cosα − sinα 0 x ' = cosα x − sinα y ⇔ T [α ] = sinα cosα 0 y ' = sinα x + cosα y 0 0 1 8
- Phép quay một góc α quanh gốc tọa độ Phép đối xứng tâm [gốc tọa độ] • P và Q đối xứng qua gốc tọa độ. Do đó, phép đối xứng tâm là phép quay quanh gốc tọa độ một góc 1800. α=1800 P O O Q − 1 0 0 x ' = − x y ' = −y [ ⇔ T 180 0 ] = 0 −1 0 0 0 1 9
- Phép quay một góc α quanh tâm bất kì Q Q’ P’ P α α C[xc,yc] O T[-xc,-yc] T[α] T[xc,yc] P P’ Q’ Q 10
- Phép quay một góc α quanh tâm bất kì [cont.] • Ta có thể chứng minh phép quay tâm C[xc, yc] một góc α là kết hợp của các phép biến đổi sau đây: – Tịnh tiến theo vector [-xc,-yc] để dịch chuyển tâm quay về gốc tọa độ: P’ = T[-xc, -yc] . P – Quay quanh gốc tọa độ một góc α : Q’ = T[α ] . P’ – Tịnh tiến theo vector [xc,yc] để đưa tâm quay về vị trí ban đầu: Q = T[xc,yc] . Q’ • Kết hợp 3 phép biến đổi trên ta được: Q = T[xc,yc] . T[α ] . T[- xc,-yc] . P • Như vậy, ma trận biến đổi của phép quay tâm bất kì là: cosα − sinα [ 1 − cosα ] x c + sinα y c T [ x c , y c , α ] = T [ x c , y c ]T [α ]T [ − x c , −y c ] = sinα cosα − sinα x c + [ 1 − cosα ] y c 0 0 1 11
- Phép biến đổi tỉ lệ - Scaling • Co giản đối tượng x ' = s x x sx 0 0 T [sx , sy ] = 0 sy 0 y ' = s y y 0 0 1 • sx và sy được gọi là hệ số co giản theo trục x và trục y 12
- Phép biến đổi tỉ lệ [cont.] • Khi sy = 1 thì đối tượng co giản theo trục x • Khi sx = 1 thì đối tượng co giản theo trục y 13
- Phép biến đổi tỉ lệ [cont.] • Khi sy = sy thì ta gọi đây là phép biến đổi đồng dạng – uniform scaling, bảo toàn tính cân xứng của đối tượng. • Nếu sx = sy < 1 thì đây là phép thu nhỏ, ngược lại thì đây là phép phóng to Thu nhỏ Phóng to 14
- Phép biến đổi tỉ lệ [cont.] Phép đối xứng trục • Đối xứng qua trục hoành: • Đối xứng qua trục tung: x '= x sx = 1 x ' = − x s x = −1 ⇔ ⇔ y ' = −y s y = −1 y '= y sy = 1 1 0 0 0 − 1 0 0 0 1 − 1 0 0 0 1 0 0 0 1 15
- Phép biến dạng - Shearing • Thay đổi hình dạng của đối tượng • Phép biến dạng theo trục x làm thay đổi hoành độ còn tung độ giữ nguyên. 1 sh x 0 x ' = x + sh x y ⇔ T [ sh x , 0 ] = 0 1 0 y ' = y 0 0 1 • Phép biến dạng theo trục y làm thay đổi tung độ còn hoành độ giữ nguyên. 1 0 0 x '= x ⇔ T [ 0 , sh y ] = sh y 1 0 y ' = sh y x + y 16 0 0 1
- Phép biến dạng - Shearing • Phép biến dạng tổng quát 1 sh x 0 x ' = x + sh x y ⇔ T [ sh x , sh y ] = sh y 1 0 y ' = sh y x + y 0 0 1 17
- Bài tập Biến đổi đối tượng 2D • Mô tả tính chất hình học của đối tượng points color center Hệ tọa độ đối tượng Hệ tọa độ thực – Tâm, có tọa độ so với hệ tọa độ thực : center – Dạng hình học, có dạng đa giác đối xứng qua tâm : points – Màu sắc : color 18
- Bài tập Biến đổi đối tượng 2D [cont.] • Áp dụng các phép biến đổi trên đối tượng tr Hệ tọa độ thực – Tịnh tiến đối tượng bằng vectơ tr, thực chất là tịnh tiến tâm của đối tượng – Quay đối tượng theo góc angle, thực chất là quay các đỉnh của đa giác – … 19
- Bài tập Biến đổi đối tượng 2D [cont.] • Cấu trúc dữ liệu
define MAXNUMPOINTS 10 struct Point2D { double x, y; }; struct Object { Point2D center; Point2D points[MAXNUMPOINTS]; int numOfPoints; int color; Point2D tr; double angle; // … }; 20