Bài tập các phép biến đổi đồ họa

[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

  1. 2D Transformations Các phép biến đổi 2D 1
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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  
  17. 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
  18. 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
  19. 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
  20. 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

Chủ Đề