Quy trình hiển thị đối tượng 2DTừ hệ tạo độ thế giới thực sang hệ tọa độ quan sát.. Quy trình hiển thị đối tượng 2D Mô tả bằng các đối tượng đồ họa cơ sở và các thuộc tính của chúng tr
Trang 1CÁC THUẬT TOÁN
XÉN HÌNH 2D.
Giảng viên: ThS Trần Tuấn Vinh
SVTH: Nguyễn Thị Thanh Tâm
Nguyễn Văn Thắng Nguyễn Quang Thành Phùng Đức Thông Nguyễn thị Hồng Thu
Lớp: K32B-Tin
Trang 2Mục tiêu.
Định nghĩa
Tại sao phải xén hình?
Giới thiệu một số thuật toán xén hình cơ bản (Trong không gian 2D)
Trang 3 Window xác định cái gì được thấy trên thiết bị hiển thị
Viewport xác định nơi nào nó sẽ được hiển thị.
Trang 4Định nghĩa.
Một bước trong quá trình hiển thị đối tượng 2D.
Loại bỏ phần hình nằm ngoài một vùng cho trước.
Vùng dùng để xén gọi là cửa sổ xén
Trang 5Quy trình hiển thị đối tượng 2D
yv max
xv
Trang 6Quy trình hiển thị đối tượng 2D
Từ hệ tạo độ thế giới thực sang
hệ tọa độ quan sát.
Ánh xạ từ hệ tọa độ thiết bị chuẩn sang hệ tạo độ thiết bị.
Từ hệ tọa độ quan sát sang hệ tọa
Trang 7Quy trình hiển thị đối tượng 2D
Mô tả bằng các đối tượng đồ họa cơ sở và các thuộc tính của chúng trong từng hệ tọa độ cục bộ (modeling coordinates - MC)
Dùng các phép biến đổi hệ tọa độ để chuyển các mô tả
từ các hệ tọa độ cục bộ sang hệ tọa độ thế giới thực (world coordinates - WC) duy nhất chứa toàn bộ các đối tượng thành phần
Gọi là phép chuyển đổi mô hình (modeling
coordinates transformation)
Trang 8Quy trình hiển thị đối tượng 2D
Xác định một hệ tọa độ quan sát (viewing coordinates - VC), là hệ tọa độ mô tả vị trí của người quan sát đối
tượng
Nhờ việc sử dụng hệ tọa độ này mà cùng một mô tả, các đối tượng có thể được quan sát ở nhiều góc độ và vị trí khác nhau
Trang 9Quy trình hiển thị đối tượng 2D
Tiếp theo sẽ định nghĩa cửa sổ trong hệ tọa độ quan sát, vùng quan sát trong hệ tọa độ thiết bị chuẩn (normalized device coordinates - NDC)
Ánh xạ từ cửa sổ sang vùng quan sát
Xén các phần của đối tượng nằm ngoài vùng quan sát
Ánh xạ kết quả sang hệ tọa độ thiết bị (device coordinates
- DC)
Trang 10Tại sao chúng ta phải xén hình?
Trang 11Một số thuật toán xén hình cơ bản.
Trang 12Phương trình tham số của đường thẳng
Đường thẳng đi qua hai điểm P1(x1,y1), P2(x2,y2) sẽ có phương trình tham số là:
x= x1 + t(x2-x1) = x1+ tDx, Dx= x2- x1
y= y1 + t(y2-y1) = y1+ tDy, Dy= y2- y1
Với thì phương trình trên trở thành
phương trình tham số của đoạn thẳng P1P2
Trang 13Thuật toán Cohen – Sutherland.
Khái niệm mã vùng (area code)
Một con số 4 bit nhị phân gọi là mã vùng sẽ được gán cho mỗi vùng để
mô tả vị trí tương đối của vùng đó so với cửa sổ Bằng cách đánh số từ 1 đến
4 theo thứ tự từ phải qua trái, các bit của mã vùng được dùng theo quy ước sau để chỉ một trong bốn vị trí tương đối của vùng so với cửa sổ bao gồm :
Bit 1 : trái (LEFT)
Bit 2 : phải (RIGHT)
Bit 3 : trên (TOP)
Bit 4 : dưới (BOTTOM)
Trang 14Thuật toán Cohen – Sutherland.
P1P2 nằm hoàn toàn bên ngoài cửa sổ
điểm nằm ngoài cửa sổ, ta xác định giao điểm của P1P2 với biên cửa sổ Giả sử P1 nằm ngoài cửa sổ Dựa vào c1 để xác định đoạn thẳng giao với biên nào, tìm giao điểm P1’ Lặp lại với P1’P2.
Trang 15Thuật toán Cohen – Sutherland.
Tung độ y của điểm giao đoạn
thẳng với biên đứng của cửa sổ
có thể tính từ công thức
y=y1+m(x-x1) trong đó x có thể
là xmin hay xmax
Tương tự, hoành độ x của điểm
giao đoạn thẳng với biên ngang
của cửa sổ: x =x1+(y-y1)/m
trong đó y có thể là y min hay
y max
Trang 16Cohen – Sutherland 3D
Cohen-Sutherland trong 3D
Trang 18 Giả sử đường thẳng cắt mặt z=z min ta có:
Thay vào các phương trình trên ta sẽ có x,y.
Lần lượt thực hiện xén với 6 mặt.
1 2
1
min
z z
z
z t
−
−
=
Trang 19
Thuật toán Liang – Barsky
Thuật toán Liang-Barsky được phát triển dựa vào việc phân tích dạng tham số của phương trình đoạn thẳng
Các điểm ứng với t ≥ 1 sẽ thuộc về tia P2x
Các điểm ứng với t ≤ 0 sẽ thuộc về tia P1x’
Các điểm ứng với 0 ≤ t ≤ 1 sẽ thuộc về đoạn thẳng
P2(
x2,y2)P1(
x1,y1)
x
x’
Trang 20Thuật toán Liang – Barsky
ứng với các giá trị t thỏa hệ bất phương trình :
Trang 21Thuật toán Liang – Barsky
Như vậy việc tìm đoạn giao thực chất là tìm nghiệm của
hệ bất phương trình này Có hai khả năng xảy ra đó là :
Hệ bất phương trình vô nghiệm, nghĩa là đường thẳng không có phần giao với cửa sổ nên sẽ bị loại bỏ
Hệ bất phương trình có nghiệm, lúc này tập nghiệm sẽ là các giá trị t thỏa mãn: t є [0,1]
• Kết quả của thuật toán Liang – Barsky tương tự Cohen – Sutherland nhưng cho tốc độ cao hơn
Trang 22z <= + <=
Trang 23 Là thuật toán được áp dụng để xén đa giác.
Thuật toán này có khá nhiều điểm kế thừa từ thuật
toán Cohen – Sutherland
Trang 24Sutherland – Hodgeman
Thuật toán này sẽ tiến hành xén đa giác lần lượt với các biên cửa sổ [Trái – Phải – Trên - Dưới]
Đầu tiên, đa giác sẽ được xén dọc theo biên trái của cửa
sổ, kết quả sau bước này sẽ được dùng để xén tiếp biên phải, rồi cứ tương tự như vậy cho các biên trên, dưới Sau khi xén hết với bốn biên của cửa sổ, ta được kết quả cuối cùng.
Trang 25Sutherland – Hodgeman
• Gọi Vi,Vi+1 là hai đỉnh kề cạnh Vi,Vi-1, ta có 4 trường hợp
có thể xảy ra khi xét từng cặp đỉnh của đa giác ban đầu với biên của cửa sổ như sau:
ViVi+1 với biên của cửa sổ và Vi+1
Trang 27THE END