Đồ họa máy tính giúp chúng ta thay đổi cách cảm nhận và sử dụng máy tính, nó đã trở thành những công cụ trực quan không thể thiếu trong đời sống hàng ngày. Mời các bạn cùng tìm hiểu phép quan sát hai chiều; đồ họa ba chiều; quan sát trong không gian ba chiều được trình bày cụ thể trong Bài giảng Đồ họa máy tính: Phần 2.
CHƢƠNG IV PHÉP QUAN SÁT HAI CHIỀU 4.1 Cửa sổ, Vùng quan sát Hệ tọa độ Descartes dễ thích ứng cho chương trính ứng dụng để miêu tả hình ảnh hệ tọa độ thực Các hình ảnh định nghĩa hệ tọa độ thực sau hệ đồ họa vẽ lên hệ tọa độ thiết bị Điển hình, vùng đồ họa cho phép người sử dụng xác định vùng hình ảnh hiển thị bạn muốn đặt nơi hệ tọa độ thiết bị Một vùng đơn lẻ vài vùng hình ảnh chọn Những vùng đặt vị trí tách biệt, vùng chèn vào vùng lớn Quá trính biến đổi liên quan đến thao tác tịnh tiến, biến đổi tỷ lệ Vùng chọn , xóa bỏ Vùng khơng chọn Những thao tác Windowing Clipping Hình 4.1 Ánh xạ từ cửa sổ - vùng quan sát 48 Một vùng có dạng hình chữ nhật xác định hệ tọa độ thực gọi cửa sổ (window) Còn vùng hình chữ nhật thiết bị hiển thị để cửa sổ ánh xạ đến gọi vùng quan sát (viewport) Hình 4.1 minh họa việc ánh xạ phần hình ảnh vào vùng quan sát Việc ánh xạ gọi phép biến đổi hệ quan sát, biến đổi cửa sổ, biến đổi chuẩn hóa Các lệnh để xây dựng cửa sổ vùng quan sát từ chương trính ứng dụng định nghĩa sau: set_window(xw_min, xw_max, yw_min, yw_max) set_viewport(xv_min, xv_max, yv_min, yv_max) Các tham số hâm dùngđể định nghĩa giới hạn tọa độ vùng chữ nhật Các giới hạn cửa sổ xác định hệ tọa độ thực Hệ tọa độ thiết bị chuẩn thường dùng cho việc xác định vùng quan sát, hệ tọa độ thiết bị dùng có thiết bị xuất hệ thống Khi hệ tọa độ thiết bị chuẩn dùng, lập trình viên xem thiết bị xuất có giá trị tọa độ khoảng Một xác định Vùng quan sát cho với giá trị khoảng Các việc xác định sau đây, đặt phần định nghĩa hệ tọa độ thực vào góc bên phải Vùng hiển thị, minh họa hình 4.2: set_window(-60.5, 41.25, -20.75, 82.5); set_viewport(0.5, 0.8, 0.7, 1.0); Nếu cửa sổ buộc phải ánh xạ lấp đầy Vùng hiển thị, xác định vùng quan sát thiết lập theo thủ tục: set_viewport(0,1, 0, 1) 49 Hình 4.2: Ánh xạ cửa sổ vào vùng quan sát hệ tọa độ thiết bị chuẩn Các vị trì biểu diễn hệ tọa độ thiết bị chuẩn phải biến đổi sang hệ tọa độ thiết bị trước hiển thị thiết bị xuất cụ thể Thông thường thiết bị xác định chứa gói đồ họa cho mục đìch Thuận lợi việc dùnghệ tọa độ thiết bị chuẩn để gói đồ họa độc lập với thiết bị Các thiết bị xuất khác dùngnhờ việc cung cấp trình điều khiển thiết bị thích hợp Mọi điểm tham khảo đến gói đồ họa phải xác định tương ứng hệ tọa độ Descartes Bất kỳ định nghĩa hình ảnh dùngtrong hệ tọa độ khác, hệ tọa độ cực, người sử dụng trước tiên phải biến đổi sang hệ tọa độ thực Những hệ tọa độ Descart sau dùngtrong lệnh cửa sổ để xác định phần hình ảnh muốn hiển thị 50 4.2 Phép biến đổi từ cửa sổ - đến - vùng quan sát Khi tất điểm, đoạn thẳng, văn vừa bị cắt, chúng ánh xạ lên vùng quan sát để hiển thị Phép biến đổi đến vùng quan sát thực để vị trí tọa độ liên hệ giữ lại Trong hình, điểm vị trí (xw, yw) cửa sổ ánh xạ vị trí (xv, yv) Vùng quan sát Để trì đặt liên hệ tương tự vùng quan sát cửa sổ, cần xác định ánh xạ: xv xv x x y y y y w w ; v v w w xv max xv xw max xw yv max yv yw max yw (4-1) Vì vậy: xv xw xw yv yw yw Các giá trị tỷ lệ xv max xv xv xw max xw yv max yv yv yw max yw xv max xv xw max xw , (4-2) yv max yv yw max yw số điểm ánh xạ hệ số tỷ lệ Sx Sy theo trục tương ứng Nếu tỷ lệ khác hình vẽ Vùng quan sát bị biến dạng so với hình ban đầu, tỷ lệ giống hình vẽ khơng biến dạng 4.3 Phép cắt xén chiều Ánh xạ Vùng cửa sổ vào Vùng quan sát, kết hiển thị phần phạm vi cửa sổ Mọi thứ bên 51 cửa sổ bị loại bỏ Các thủ tục để loại bỏ phần hình ảnh nằm bên Ngồi biên cửa sổ xem thuật toán cắt xén (clipping algorithms) đơn giản gọi clipping Việc cài đặt phép biến đổi cửa sổ thường thực việc cắt khỏi cửa sổ, sau ánh xạ phần bên cửa sổ vào vùng quan sát Như lựa chọn, vài gói đồ họa ánh xạ định nghĩa hệ tọa độ thực vào hệ tọa độ thiết bị chuẩn sau cắt khỏi biên vùng quan sát Trong các phần thảo luận sau, giả thiết việc cắt thực dựa vào đường biên cửa sổ hệ tọa độ thực Sau cắt xong, điểm bên cửa sổ ánh xạ đến vùng quan sát Việc cắt điểm khỏi cửa sổ hiểu đơn giản kiểm tra giá trị tọa độ để xác định xem chúng có nằm bên biên khơng Một điểm vị trì (x,y) giữ lại để chuyển đổi sang vùng quan sát thỏa bất phương trình sau: xwmin ≤ x ≤ xwmax, ywmin ≤ y ≤ ywmax (4-3) Hình 4.3 Hình ảnh đoạn thẳng trƣớc sau Clipping 52 Nếu điểm không thỏa mãn bất phương trình trên, bị cắt bỏ Trong hình trên, điểm P1 giữ lại, điểm P2 bị cắt bỏ Hình 4.3 minh họa quan hệ có vị trì đoạn thẳng với biên cửa sổ Để kiểm tra đoạn thẳng có bị cắt hay khơng việc xác định hai điểm đầu đoạn thẳng nằm hay nằm cửa sổ Một đoạn thẳng với hai đầu nằm cửa sổ giữ lại hết, đoạn từ P5 đến P6 Một đoạn với đầu nằm (P9) đầu nằm (P10) bị cắt bớt giao điểm với biên cửa sổ (P’9) Các đoạn thẳng có hai đầu nằm Ngồi cửa sổ, rơi vào hai trường hợp: toàn đoạn thẳng nằm Ngoài đoạn thẳng cắt hai cạnh cửa sổ Đoạn từ P3 đến P4 bị cắt bỏ hoàn toàn Nhưng đoạn từ P7 đến P8 giữ lại phần từ P’7 đến P’8 Thuật toán cắt xén đường xác định xem đoạn toàn nằm trong, đoạn bị cắt bỏ hoàn toàn hay bị cắt phần Đối với đoạn bị cắt bỏ phần, giao điểm với biên cửa sổ phải tính Vì hình ảnh chứa hàng ngân đoạn thẳng, việc xử lý clipping nên thực hiệnsao cho có hiệu Trước tình giao điểm, thuật tốn nên xác định rõ tất đoạn thẳng giữ lại hoàn toàn bị cắt bỏ hoàn toàn Với đoạn xem xét bị cắt bỏ, việc xác định giao điểm cho phần giữ lại nên thực với tính tốn 4.3.1 Giải thuật Cohen - Suntherland Một tiếp cận để cắt đoạn dựa chế đánh mã phát triển Cohen Sutherland Mọi điểm hai đầu đoạn thẳng hình ảnh gán mã nhị phân bit, gọi mã vùng, giúp nhận vùng tọa độ điểm Các Vùng xây dựng dựa xem xét với biên cửa sổ, hình 4.4 53 Hình 4.4 Cơ chế đánh mã Mỗi vị trí bit mã Vùng dùng để bốn vị trí tọa độ tương ứng điểm so với cửa sổ: bên trái, phải, đỉnh, đáy Việc đánh số theo vị trí bit mã vùng từ đến cho từ phải sang trái, vùng tọa độ liên quan với vị trí bit sau: Bit - trái ; Bit - phải; Bit – dưới; Bit – Giá trị vị trí điểm vị trì tương ứng, ngược lại bit vị trì Nếu điểm nằm cửa sổ, mã vị trí 0000 Một điểm bên bên trái cửa sổ có mã vùng 0101 Các giá trị bit mã Vùng xác định cách so sánh giá trị tọa độ (x,y) điểm đầu với biên cửa sổ Bit đặt lên x < xwmin Các giá trị ba bit lại xác định cách so sánh tương tự Trong ngơn ngữ lập trình, làm việc bit thực được, giá trị bit mã Vùng xác định theo bước sau: (1) Tìm hiệu tọa độ điểm đầu với biên cửa sổ (2) Dùng bit dấu (kết 54 hiệu) để đặt giá trị tương ứng mã Vùng Bit bit dấu x - xwmin; bit bit dấu xwmax - x; bit bit dấu y - ywmin; bit bit dấu ywmax - y Khi xây dựng xong mã Vùng cho tất điểm đầu một, xác định nhanh chóng đoạn thẳng hồn toàn nằm cửa sổ, đoạn hoàn toàn nằm ngồi Bất kỳ đoạn có mã Vùng đầu 0000 nằm cửa sổ chấp nhận đường Bất kỳ đường mà hai mã Vùng hai đầu có số vị trí bit đoạn hồn tồn nằm Ngồi cửa sổ, loại bỏ đoạn Ví dụ, vứt bỏ đoạn có mã Vùng đầu 1001, đầu 0101 (có bit vị trí nên hai đầu đoạn nằm phía bên trái cửa sổ) Một phương pháp dùng để kiểm tra đoạn cho việc cắt toàn thực phép logic and với hai mã Vùng Nếu kết khơng phải 0000 đoạn nằm bên Ngồi cửa sổ Các đường khơng nhận dạng hồn toàn nằm hay hoàn toàn nằm Ngoài cửa sổ thông qua phép kiểm tra tìm giao điểm với biên cửa sổ Như hình đây, đường thuộc nhóm cắt khơng cắt cửa sổ Chúng ta xử lý đoạn cách so sánh điểm đầu (cái nằm Ngoài cửa sổ) với biên cửa sổ để xác định phần đường bị bỏ Sau đó, phần đường giữ lại kiểm tra với biên khác, tiếp tục toàn đường bị bỏ hay đến phần đường xác định nằm cửa sổ Chúng ta xây dựng thuật toán để kiểm tra điểm đầu mút tương tác với biên cửa sổ bên trái, bên phải, bên hay đỉnh Để minh họa bước xác định việc cắt đoạn khỏi biên cửa sổ dùng thuật toán Cohen55 Sutherland, xem đoạn hình xử lý Bắt đầu điểm đầu mút bên từ P1 đến P2, ta kiểm tra P1 với biên trái, phải đáy cửa sổ thấy điểm nằm phía cửa sổ Ta tím giao điểm P’1 với biên Sau tìm giao điểm P’1, vứt bỏ đoạn từ P1 đến P’1 Giao điểm P’2 tính, đoạn từ P’1 đến P’2 giữ lại Kết thúc trình xử lý đoạn P1P2 Bây xét đoạn kế tiếp, P3P4 Điểm P3 nằm bên trái cửa sổ, ta xác định giao điểm P’3 loại bỏ đoạn từ P’3 đến P3 Bằng cách kiểm tra mã vùng phần đoạn thẳng từ P’3 đến P4, thấy phần lại nằm phìa cửa sổ bị vứt bỏ Các giao điểm với biên cửa sổ tính cách dùng tham số phương trính đường thẳng Với đường thẳng qua hai điểm (x1, y1) (x2, y2), tung độ y giao điểm với biên dọc cửa sổ tình theo phép tính: y = y1 + m (x - x1) (4-4) Ở giá trị x đặt xwmin xwmax, độ dốc m tính m = (y2 - y1)/ (x2 - x1) Tương tự, ta tìm giao điểm với biên ngang, hồnh độ x tình sau: x = x1 + (y - y1)/m (4-5) với y ywmin ywmax 4.3.2 Giải thuật chia trung điểm Một kỹ thuật để xác định giao điểm với biên cửa sổ mà không dùngđến phương trình đường thẳng dùng thủ tục tìm kiếm nhị phân, gọi phân chia trung điểm Đầu tiên, việc kiểm tra đoạn lần nửa thực cách dùng mã vùng Bất kỳ đoạn khơng chấp nhận hồn tồn khơng bị huỷ bỏ hồn tồn (nhờ vào kiểm tra mã vùng) 56 tìm giao điểm cách kiểm tra tọa độ trung điểm Tiếp cận minh họa hình Mọi đoạn thẳng với hai điểm đầu mút (x1,y1) (x2, y2), trung điểm tính sau: xm = (x1 + x2) / 2; ym = (y1 + y2) / (4-6) Mỗi kết tính tốn cho tọa độ giao điểm liên quan đến phép cộng phép chia Khi tọa độ giao điểm xác định, nửa đoạn thẳng kiểm tra để chấp nhận hay huỷ bỏ toàn Nếu nửa đoạn chấp nhận bị huỷ bỏ, nửa sau xử lý theo cách tương tự Điều tiếp tục gặp giao điểm Nếu nửa chấp nhận bị huỷ bỏ toàn bộ, nửa tiếp tục xử lý tồn bị huỷ bỏ giữ lại Cài đặt phần cứng theo phương pháp giúp ta clipping khỏi biên Vùng quan sát nhanh chóng sau đối tượng vừa chuyển sang hệ tọa độ thiết bị 4.3.3 Giải thuật Liang - Barsky Giải thuật dựa phân tìch phương trình tham số đoạn thẳng: xx1 t(x2 x1)x tDx yy1 t(y2 y1) y1 tD y , t 1 (4-7) Ứng với giá trị t, ta có điểm P tương ứng thuộc đường thẳng Tập hợp điểm thuộc phần giao đoạn thẳng cửa sổ thỏa mãn hệ bất phương trình: 57 6.1.1 Phép chiếu song song Các hình ảnh hình thành phép chiếu song song xác định dựa vào góc hợp hướng phép chiếu hợp với mặt phẳng chiếu Khi hướng phép chiếu vng góc với mặt phẳng, ta có phép chiếu trực giao (hay phép chiếu vng góc – orthographic projection) Một phép chiếu khơng vng góc với mặt phẳng chiếu gọi phép chiếu xiên Hình 6.2 Phép chiếu kích thƣớc đối tƣợng lên bề mặt quan sát Các phép chiếu trực giao đa số dùngđể tạo quang cảnh nhìn từ phìa trước, bên sườn, đỉnh đối tượng Quang cảnh phìa trước, bên sườn, phía sau đối tượng gọi “mặt chiếu”, quang cảnh phía gọi “mặt phẳng” Các vẽ kỹ thuật thường dùng phép chiếu 73 trực giao này, chiều dài góc miêu tả xác đo từ vẽ Chúng ta xây dựng phép chiếu trực giao để quan sát nhiều mặt đối tượng Các quang cảnh gọi phép chiếu trực giao trục lượng học Hầu hết phép chiếu trục lượng học dùng phép chiếu kìch thước Một phép chiếu kìch thước thực việc xếp song song mặt phẳng chiếu mà cắt trục tọa độ nơi đối tượng định nghĩa (được gọi trục chính) khoảng cách từ ảnh gốc Hình trình bày phép chiếu kích thước Có tám vị trí, tám mặt, có kìch thước Tất ba trục chình vẽ thu gọn phép chiếu kìch thước để kìch thước liên hệ đối tượng bảo tồn Đây không trường hợp phép chiếu trực giao trục lượng học tổng quát, mà hệ số tỷ lệ theo ba trục khác 74 Hình 6.3 Ba phép chiếu trực giao đối tƣợng Các phương trính biến đổi để thực phép chiếu song song trực giao dễ hiểu Đối với điểm (x, y, z), điểm chiếu (xp, yp, xp) bề mặt chiếu tình sau: (6-1) xp = x, yp = y, zp = Một phép chiếu xiên đạt việc chiếu điểm theo đường thẳng song song, đường thẳng khơng vng góc với mặt phẳng chiếu Hình 6.3 trình bày hình chiếu xiên điểm (x, y, z) theo đường thẳng chiếu đến vị trí (xp, yp) Các tọa độ chiếu trực giao mặt phẳng chiếu (x, y) Đường thẳng phép chiếu xiên tạo góc α với đường thẳng mặt phẳng chiếu (đây đường nối điểm (xp, yp) với điểm (x, 75 y)) Đường này, có chiều dài L, hợp góc φ với phương ngang mặt phẳng chiếu Chúng ta diễn tả tọa độ chiếu qua số hạng x, y, L, φ: xp = x + L cosφ yp = y + L sinφ (6-2) 6.1.2 Phép chiếu phối cảnh Để đạt phép chiếu phối cảnh đối tượng ba chiều, chiếu điểm theo đường thẳng chiếu để đường gặp tâm chiếu Trong đây, tãm chiếu trục z có giá trị âm, cách khoảng d phía sau mặt phẳng chiếu Bất kỳ điểm chọn làm tâm phép chiếu, nhiên việc chọn điểm dọc theo trục z làm đơn giản việc tính tốn phương trình biến đổi Hình 6.4 Phép chiếu phối cảnh điểm P tọa độ (x, y, z) thành điểm P’(x’, y’, 0) mặt phẳng chiếu 76 Chúng ta đạt phương trính biến đổi cho phép chiếu phối cảnh từ phương trính tham số mơ tả đường chiếu từ điểm P đến tâm chiếu Các tham số xây dựng đường chiếu là: x’ = x - xu y’ = y - yu (6-5) z’ = z - (z + d)u Tham số u lấy giá trị từ đến 1, tọa độ (x’, y’, z’) thể cho điểm dọc theo đường thẳng chiếu Khi u = 0, điểm P tọa độ (x, y, z) Ở đầu mút đường thẳng u =1, có tọa độ tâm chiếu, (0, 0, d) Để thu tọa độ mặt phẳng chiếu, đặt z’ = tìm tham số u 6.2 Điểm tụ Khi đối tượng ba chiều đựợc chiếu lên mặt phẳng dùng phương trính biến đổi phối cảnh, tập hợp đường thẳng song song đối tượng mà không song song với mặt phẳng chiếu chiếu thành đường hội tụ (đồng quy) Các đường thẳng song song với mặt phẳng chiếu tạo đường song song Điểm mà tập hợp đường thẳng song song chiếu xuất hội tụ gọi điểm tụ Mỗi tập hợp đường thẳng song song chiếu có điểm tụ riêng 77 Hình 6.5 Các quang cảnh phối cảnh hình lập phƣơng Điểm tụ cho tập đường thẳng, tức đường song song với trục tọa độ thực nói đến điểm tụ Chúng ta quản lý số lượng điểm tụ (một, hai, ba) với hướng mặt phẳng chiếu, phép chiếu phối cảnh phân loại dựa vào để có phép chiếu: một-điểm, hai-điểm, ba-điểm Số lượng điểm tụ phép chiếu xác định số lượng trục hệ tọa độ thực cắt mặt phẳng chiếu Hình minh họa hình ảnh phép chiếu phối cảnh một-điểm hai-điểm hình lập phương 78 Trong hình 6.5(b), mặt phẳng chiếu có phương song song với mặt xy để có trục z bị cắt Phương tạo phép chiếu phối cảnh một-điểm với điểm tụ trục z Với quang cảnh hình 6.5(c), mặt phẳng chiếu cắt hai trục x z không cắt trục y Kết quả, phép chiếu phối cảnh hai-điểm chứa hai điểm tụ: trục x trục z 6.3 Loại bỏ mặt khuất Một vấn đề cần quan tãm đến việc tạo hình ảnh thực xác định xóa bỏ phần đối tượng hình học mà ta khơng nhìn thấy từ vị trí quan sát Có nhiều tiếp cận cần để giải vấn đề này, có nhiều thuật tốn khác phát triển để xóa bỏ phần bị che khuất cách hiệu cho loại ứng dụng khác Có phương pháp tốn nhớ, số khác cần nhiều thời gian xử lý hay áp dụng cho kiểu đối tượng đặc biệt Các thuật toán đường khuất mặt khuất dựa vào xử lý trực tiếp định nghĩa đối tượng hay xử lý hình chiếu đối tượng Hai tiếp cận gọi phương pháp không gian đối tượng phương pháp không gian ảnh Phương pháp không gian đối tượng xác định thành phần đối tượng nhìn thấy cách sử dụng quan hệ hình học khơng gian Nó thực với độ xác từ liệu mơ tả đối tượng Trong thuật tốn khơng gian ảnh, tính chất nhìn thấy điểm định điểm vị trí pixel mặt phẳng chiếu Hầu hết thuật tốn khử mặt khuất dùng phương pháp khơng gian ảnh, nhiên phương pháp không gian đối tượng dùngmột cách hiệu cho số trường hợp 79 Các thuật toán khử đường khuất hầu hết dùng phương pháp không gian đối tượng, nhiều thuật tốn khử mặt khuất khơng gian ảnh dễ dàng chỉnh sửa cho việc khử đường khuất 6.3.1 Phương pháp mặt sau Một phương pháp không gian đối tượng đơn giản phương pháp mặt sau, dựa vào phương trình mặt phẳng: Ax + By + Cz + D = Bất kỳ điểm (x’, y’, z’) hệ tọa độ bân tay trái “phìa trong” mặt thỏa bất phương trình: Ax’ + By’ + Cz’ + D < Nếu điểm (x’, y’, z’) vị trì quan sát, mặt phẳng làm cho bất phương trình phải mặt đằng sau Tức là, mặt ta khơng thể nhìn thấy từ vị trí quan sát Hình 6.6 Một mặt phẳng với tham số C < Chúng ta thực cách kiểm tra mặt đằng sau đơn giản cách nhìn vector pháp tuyến mặt có phương trính 7-1, vector có tọa độ Descartes (A, B, C) Trong hệ tọa độ bân tay phải với hướng quan sát chiều với trục z 80 âm (xem hình 6.6), vector có tham số C song song với hướng quan sát Nếu C0 hướng quan sát hướng với trục z dương Trong tất thảo luận sau chương, giả sử hệ quan sát bân tay trái dùng Hình 6.7 Trong hệ quan sát bân tay trái, hƣớng quan sát chiều với trục zv dƣơng, mặt đằng sau mặt với tham số C>0 Bằng việc kiểm tra tham số C mặt đối tượng, ta xác định tất mặt đằng sau Đối với khối đa diện lồi đơn lẻ, hính kim tự tháp hình 6.10, việc kiểm tra xác định tất mặt bị che khuất đối tượng, mặt thí hồn tồn nhìn thấy hồn tồn bị che khuất Đối với đối tượng khác, kiểm tra phức tạp cần thực để xác định xem mặt bị che khuất hoàn toàn hay bị che khuất phần 81 Hình 6.8 Ảnh đối tƣợng với mặt bị che khuất phần Tương tự, cần xác định xem đối tượng có phần hay tồn bị che khuất đối tượng khác Một cách tổng quát, việc khử mặt khuất loại bỏ khoảng nửa số mặt ảnh thực phép kiểm tra 82 MỤC LỤC Lời nói đầu Chƣơng Tổng quan đồ họa máy tính 1.1 Giới thiệu tổng quan 1.1.1 Lịch sử phát triển đồ họa máy tình 1.2 Các ứng dụng tiêu biểu kỹ thuật đồ họa máy tình 1.2.1 Ứng dụng CAD/CAM 1.2.2 Ứng dụng biểu diễn thông tin 1.2.3 Ứng dụng hoạt hính nghệ thuật 1.2.4 Ứng dụng đào tạo 1.2.5 Ứng dụng xây dựng giao diện người dùng 1.2.6 Ứng dụng xây dựng đồ 10 1.2.7 Ứng dụng y tế 11 1.3 Tổng quan hệ tọa độ 12 1.3.1 Phần cứng đồ họa 13 1.3.2 Phần mềm đồ họa 14 1.3.3 Hệ tọa độ thực, hệ tọa độ thiết bị hệ tọa độ chuẩn 15 1.3.4 Hệ màu 17 Chƣơng Các thuật toán sở 20 2.1 Giới thiệu 20 2.1.1 Các đối tượng đồ họa sở 20 2.1.2 Các thuộc tình đối tượng đồ họa sở 21 2.2 Các thuật toán vẽ đường thẳng 22 2.2.1 Thuật toán vẽ đường thẳng 22 2.2.2 Thuật toán DDA 22 2.2.3 Thuật toán Bresenham 25 83 2.2.4 Thuật toán MidPoint 29 2.3 Thuật tốn vẽ đường tròn, elip 33 2.3.1 Thuật toán MidPoint 35 2.3.2 Thuật toán Bresenham 38 2.3.3 Thuật toán vẽ Elip 41 Chƣơng Biến đổi không gian hai chiều 42 3.1 Các phép biến đổi 42 3.1.1 Phép tịnh tiến 42 3.1.2 Phép biến đổi tỷ lệ 43 3.1.3 Phép đối xứng 43 3.1.4 Phép quay 44 3.2 Kết hợp phép biến đổi 45 3.2.1 Kết hợp phép tịnh tiến 45 3.2.2 Kết hợp phép biến đổi tỷ lệ 45 3.2.3 Kết hợp phép quay 46 3.2.4 Một số phép biến đổi khác 46 3.3 Phép biến đổi hệ tọa độ 47 Chƣơng Phép quan sát hai chiều 48 4.1 Cửa sổ vùng quan sát 48 4.2 Phép biến đổi cửa sổ - Vùng quan sát 50 4.3 Phép cắt xén hai chiều (Clipping) 50 4.3.1 Giải thuật Cohen – Suntherland 53 4.3.2 Giải thuật chia trung điểm 56 4.3.3 Giải thuật Liang – Basky 57 Chƣơng Đồ họa ba chiều 60 5.1 Tổng quan đồ họa ba chiều 60 5.1.1 Quy trính hiển thị đồ họa ba chiều 60 5.1.2 Mơ hính hóa đối tượng 61 84 5.2 Biểu diễn đối tượng ba chiều 62 5.2.1 Biểu diễn mặt đa giác 62 5.2.2 Đường cong mặt cong, đường cong mặt cong Bezier, B-spline 63 5.3 Các phép biến đổi hính học ba chiều 64 5.3.1 Phép biến đổi tỷ lệ 65 5.3.2 Phép biến dạng 66 5.3.3 Phép tịnh tiến 68 5.3.4 Phép quay hình 68 Chƣơng Quan sát không gian ba chiều 71 6.1 Các phép chiếu 71 6.1.1 Phép chiếu song song 73 6.1.2 Phép chiếu phối cảnh 76 6.2 Điểm tụ 77 6.3 Loại bỏ mặt khuất 79 6.3.1 Phương pháp mặt sau 80 85 TÀI LIỆU THAM KHẢO [1] Đặng Văn Đức Kỹ thuật đồ họa máy tình, Viện Cơng nghệ thơng tin, 2002 [2] Phan Hữu Phúc Cơ sở đồ họa máy vi tình, NXB Giáo dục, 2000 86 87 ... khoảng Các việc xác định sau đây, đặt phần định nghĩa hệ tọa độ thực vào góc bên phải Vùng hiển thị, minh họa hình 4 .2: set_window(-60.5, 41 .25 , -20 .75, 82. 5); set_viewport(0.5, 0.8, 0.7, 1.0);... kiểm tra tọa độ trung điểm Tiếp cận minh họa hình Mọi đoạn thẳng với hai điểm đầu mút (x1,y1) (x2, y2), trung điểm tính sau: xm = (x1 + x2) / 2; ym = (y1 + y2) / (4-6) Mỗi kết tính tốn cho tọa độ... phương trính (4-9) [t1, t2] thỏa mãn Nếu hệ 4-9 có nghiệm đoạn giao đoạn thẳng cửa sổ : Q1( x1 t 1Dx , y1 t1 Dy) Q2 ( x1 t 2Dx , y1 t 2Dy ) 58 Bài tập áp dụng Bài Ý nghĩa mã Vùng giải