1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề cương ôn tập Đồ họa máy tính

23 959 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 1,16 MB
File đính kèm De thi.rar (542 KB)

Nội dung

Đề cương ôn tập môn Đồ họa máy tính có kèm đề thi các năm trường ĐH Công nghệ ĐHQGHN Đề cương ôn tập môn Đồ họa máy tính có kèm đề thi các năm trường ĐH Công nghệ ĐHQGHN Đề cương ôn tập môn Đồ họa máy tính có kèm đề thi các năm trường ĐH Công nghệ ĐHQGHN

Trang 1

Các vấn đề của Đồ họa máy tính

1 Đồ họa là gì? Các ứng dụng của đồ họa máy tính?

2 Các công nghệ hiển thị? Tại sao các thuật toán dựa trên đường quét (scanline) lại phù hợp với kiến trúc phần cứng của máy tính hiện tại? Với các thuật toán vẽ đường thẳng trên kiến trúc phần cứng của máy tính hiện tại, chỉ loại đường thẳng nào được vẽ ra mới thực sự thẳng? Yếu điểm của thiết bị mành?

3 Trình bày thuật toán tô phủ loang? Nhược điểm của thuật toán

4 Trình bày thuật toán tô phủ loang Smith?

5 Trình bày thuật toán Fishkin?

6 Định lý Jordan hay việc kiểm tra 1 điểm có thuộc miền trong đa giác hay không?

7 Thế nào là một đường thẳng lý tưởng?

8 Trình bày cách thể hiện đường thẳng dưới dạng tham số t

9 Trình bày thuật toán vẽ đoạn thẳng DDA?

10 Trình bày thuật toán vẽ đoạn thẳng Bresenham?

11 Trình bày cách kiểm tra một điểm nằm ở phía nào đường thẳng?

12 Trình bày thuật toán vẽ đoạn thẳng điểm giữa?

13 Trình bày thuật toán vẽ đường tròn bằng thuật toán điểm giữa?

14 Các phép biến đổi? Trình bày phép tịnh tiến 2D, co giãn 2D theo gốc tọa độ, quay 2D quanh tâm?

15 Tọa độ đồng nhất? Tại sao người ta sử dụng tọa độ thuần nhất ?

16 Các phép biến đổi với tọa độ đồng nhất?

17 Kết hợp các phép biến đổi?

18 Trình bày phép kéo?

19 Biểu diễn ma trận của các phép biến đổi 3D?

20 Phép chiếu là gì? Phân loại phép chiếu?

21 Phép chiếu phối cảnh? Điểm biến mất?

22 Phép chiếu song song?

23 Các thuật toán xác định bề mặt hiện?

24 Thuật toán xác định mặt quay vào trong?

25 Thuật toán ưu tiên theo danh sách Schumacker?

26 Thuật toán sắp xếp theo chiều sâu Newell-Newell-Sancha

27 Thuật toán BSP?

28 Thuật toán Warnock?

29 Thuật toán Weiler-Atherton?

30 Thuật toán bộ đệm Z?

31 Tại sao thuật toán bộ đệm Z lại thong dụng?

32 Mô hình ánh sáng ? Mô hình tạo bóng ?

Các ứng dụng của đồ họa máy tính là:

- Trong các giao diện người sử dụng trên màn hình máy tính

- Vẽ biểu đồ trong kinh doanh, khoa học và công nghệ

- Vẽ bản đồ

- Trong y học: siêu âm, chiếu chụp,

- Mô phỏng và hoạt ảnh cho trực quan hóa khóa học

Trang 2

- Các hệ thống đa phương tiện, phim ảnh, truyền hình,

2

- Các công nghệ hiển thị: có 2 công nghệ chính là:

Các thiết bị hiển thị véc-tơ

Các thiết bị hiển thị mành

(Các thiết bị hiển thị tinh thể lỏng là mới được áp dụng gần đây.)

- Các thuật toán đường quét phù hợp với kiến trúc phần cứng của máy tính hiện tại vì

một số ưu điểm sau:

Không tốn nhiều bộ nhớ

Khả năng tô phủ các vùng hiển thị với một màu hoặc một mẫu nhất định là tốt và giá thành thấp

- Các loại đường thẳng được vẽ ra thật sự thẳng là: các đường thẳng song song với

trục tọa độ hay các đường thẳng có góc 45 độ so với trục tọa độ,

- Yếu điểm của thiết bị mành:

Có sự rời rạc được tạo ra do cách biểu diễn thông qua điểm

Xảy ra hiện tượng lỗi lấy mẫu được gọi là răng cưa khi vẽ các đường thẳng, đa giác…độ chính xác phụ thuộc vào độ phân giải của thiết bị đầu ra

Chương 2: Các khái niệm cơ bản

2 Đoạn thẳng lý tưởng là:

- Đoạn thẳng trông phải thẳng

- Phải bắt đầu và kết thúc đúng điểm

- Phải có mật độ điểm đều nhau

- Phải có mật độ điểm không phụ thuộc vào độ dài và hệ số góc của đoạn thẳng

- Phải được vẽ ra một cách nhanh chóng

3 Các bước xử lý đồ họa:

Các thuật ngữ:

Các bước xử lý luồng đồ họa 3D:

Trang 3

Các bước xử lý đồ họa 2D:

Chương 3: Các thuật toán mành hóa

5 Thuật toán tô phủ (Fill Problem)

Bài toán tô phủ loang(Flood fill problem): Với hai màu khác nhau c và c’, một tập các

điểm A có cùng màu c được bao quanh bởi các điểm có màu khác với c và c’, tìm thuật toán thay màu của tất cả các điểm thuộc A và chỉ các điểm này thành màu c’

Thuật toán tô phủ:

void BFA(int x, int y){

if Inside(x, y) {

Set(x,y) ; BFA(x, y-1) ; BFA(x, y+1);

BFA(x-1, y) ; BFA(x+1, y);

}

}

Thuật toán này dùng để tô phủ, với hàm Inside là để kiểm tra xem điểm (x,y) có thuộc vùng cần tô phủ không Nếu (x,y) thuộc vùng tô phủ thì tô phủ nó và kiểm tra 4 điểm ở xung quanh nó Nhược điểm của thuật toán này là phải dùng đến 4 lần gọi đệ quy

Cải tiến của thuật toán tô phủ đơn giản này là thuật toán tô phủ Smith với hai lần gọi đệ

if not (Inside(x, y)) then exit; // Nếu (x, y) không thuộc vùng tô phủ thì thoát

push(x, y); // push (x,y) vào stack

while StackNotEmpty() do { // đến khi stack còn không rỗng thì pop điểm (x,y) ra

pop(x, y);

if Inside(x, y) { // Nếu (x,y) thuộc vùng tô phủ

FillRight(); FillLeft(); // Tô phủ các đoạn có chứa điểm

Trang 4

ScanHi(); ScanLo(); //Quét các đoạn trên và dưới đoạn hiện tại

//Đi từ trái sang phải và thiết lập các điểm của đoạn trong khi đi

While Inside(tx, y) and (tx < = XMAX) do

//Đi từ phải sang trái và thiết lập các điểm của đoạn trong khi đi

While Inside(tx, y) and (tx >= XMIN) do {

Set(tx, y); tx:= tx -1;

}

lx := tx +1; //Ghi lại chỉ số của điểm trái nhất trong đoạn

}

ScanHi(){//Quét các điểm giữa lx và rx trong dòng quét,Cho vào ngăn xếp đoạn trái

nhất //trong các đoạn tìm thấy, không thiết lập bất cứ điểm nào trong giai đoạn này

int tx;

if y+1 > YMAX then exit; // nếu điểm đang xét vượt ra ngoài biên thì thoát

tx := lx; //Đặt tx là bằng điểm trái nhất

while tx <= rx do{ // Đi từ điểm trái nhất sang điểm phải nhất

while( not Inside(tx, y+1) and (tx <= rx) )do tx := tx +1; //bỏ qua những điểm không thuộc vùng tô phủ

if(tx <= rx){

push(tx, y+1); //Chỉ lưu điểm đầu tiên của đoạn

while Inside(tx, y+1) and (tx <= rx) do tx := tx + 1;

//Quét tất cả các điểm trong đoạn

}

}

}

ScanLo(){//Quét các điểm giữa lx và rx trong dòng quét,Cho vào ngăn xếp đoạn trái

nhất //trong các đoạn tìm thấy, không thiết lập bất cứ điểm nào trong giai đoạn này

int tx;

if y -1 < YMIN then exit; // nếu điểm đang xét vượt ngoài biên dưới thì thoát

tx := lx; //Đặt tx là bằng điểm trái nhất

while tx <= rx do { // Đi từ điểm trái nhất sang điểm phải nhất

while not Inside(tx, y-1) and (tx <= rx) do tx := tx +1; // Bỏ qua những điểm không thuộc vùng tô phủ

Trang 5

if(tx <= rx){

push(tx, y-1); //chỉ lưu điểm đầu tiên của đoạn

while Inside(tx, y-1) and (tx <= rx) do tx:= tx + 1;

}

}

}

Ví dụ về thuật toán Smith:

6 Thuật toán vẽ đường thẳng đơn giản

- Dựa vào phương trình đường thẳng :

y = mx + b

- Ta có cách tiếp cận đơn giản là: tăng x rồi tính y

- Đây là cách đơn giản nhất nhưng cũng bộc lộ các nhược điểm, đó là phải sử dụng các phép tính toán với số thực, và làm tròn tọa độ nên đô chính xác không cao

7 Thuật toán vẽ đoạn thẳng DDA

DDA – digital diferential analyzer (phân tích số hóa vi phân)

- Xét đường thẳng theo phương trình tham số theo t đi qua 2 điểm (x1, y1) và (x2, y2) x(t) = x1 + t(x2 – x1)

y(t) = y1 + t(y2 - y1)

Trang 6

line (int x1, int y1, int x2, int y2){

float x,y ;

int dx = x2-x1 ; int dy = y2 – y1;

int n = max(asb(dx), asb(dy)) ;

float dt = n; float dxdt = dx/dt; float dydt = dy/dt;

8 Thuật toán vẽ đoạn thẳng Bresenham

- Giả sử đoạn thẳng đượcvẽ ởgóc phần tám thứ nhất thì x luôn tăng lên 1, ta chỉ cần tính y

- Giả thiết đoạn thẳng chúng ta cần vẽ là từ (0,0) đến (a,b) với a, b là số nguyên, và 0 <= b

<= a (vì (a,b) nằm ở góc phần tám thứ nhất) Ta có:

xi = xi-1 + 1 = i

yi = yi-1 + b/a = i*b/a

- Ở đây chỉ cần làm tròn y tới số nguyên gần nhất

- Y bắt đầu với giá trị 0, vậy tới giá trị nào thì y bắt đầu tăng lên 1, ta phải so sánh y(hay là b/a, 2b/a, 3b/a….) với giá trị ½, đến khi nào y > ½ thì tăng y lên 1 Và y vẫn giữ nguyên giá trị 1 cho đến khi giá trị đó lớn hơn 3/2 …

- Ta chọn giá trị ban đầu là d = 2b –a, sau mỗi lần thì cộng thêm 2b vào

Khi d >0 thì ta kiểm tra xem d có lớn hơn 2a, tiếp tục lấy d-2a, để kiểm tra xem d có lớn hơn

Trang 7

x = x+1; // Tại mỗi bước ta đều tăng x lên 1 và tăng d lên 2b để kiểm tra d có lớn hơn

9 Kiểm tra một điểm nằm trên hay dưới một đoạn thẳng

Giả thiết L là một đoạn thẳng không thẳng đứng được định nghĩa bởi phương trình:

F(x,y) = ax + by + c = 0

Với 0 <= a <= -b , đoạn thẳng này có hệ số góc từ 0 đến 1 Ta có một hệ quả quan trọng

là F(x,y) > 0 với những điểm nằm trên đoạn thẳng và F(x,y) < 0 với những điểm nằm dưới đoạn thẳng

10 Thuật toán vẽ đoạn thẳng điểm giữa

Giả thiết L là một đoạn thẳng không thẳng đứng được định nghĩa bởi phương trình:

Với 0 <= a <= -b , đoạn thẳng này có hệ số góc từ 0 đến 1 Ta có một hệ quả quan trọng

là F(x,y) > 0 với những điểm nằm trên đoạn thẳng và F(x,y) < 0 với những điểm nằm dưới đoạn thẳng

Các điểm pi (xi, yi) được sinh ra có tính chất là tọa độ x luôn được tăng lên 1 mỗi lần:

Trang 8

DrawLine(int x0, int y0, int x1, int y1){

Int x, y, dx, dy, d, posInc, negInc;

dx = x1 – x0; dy = y1 – y0; d = 2dy – dx;

posInc = 2dy; // Giá trị tăng them khi d <=0

negInc = 2(dy - dx); // Giá trị tăng them khi d >0

11 Thuật toán vẽ đường tròn điểm giữa

Ta cũng sử dụng đại lượng quyết định để quyết định xem nên chọn điểm nào để vẽ :

Phương trình đường tròn : f(x, y) = (x - x c )2 + (y - y c )2 – r2 ;

Ta vẽ đường tròn trong đoạn

có hệ số góc từ 0 đến -1, với x

chạy từ 0 đến y ; với mỗi bước

tiếp theo của (x, y) ta sẽ có điểm

tiếp theo là (x+1, y) hay (x+1,

SE được chọn nếu dmới = dcũ + (2xp - 2 yp +5) = dcũ + 2 ((x+1) – (y-1) +1)

E được chọn nếu dmới = dcũ + (2xp +3) = dcũ + 2 (x+1) +1

D ban đầu bằng d0 = f(1, r-1/2) = 5/4 – r đặt P = D - 1/4 nên P0 = 1- r ;

*) Thuật toán :

Trang 9

Chương 4 : Các thuật toán cắt xén

Các thuật toán cắt xén chia làm hai loại : Cắt xén đoạn thẳng – thực hiện việc cắt các đoạn thẳng bằng một hình chữ nhật hoặc một đa giác lồi và cắt xén đa giác – cắt toàn bộ đa giác bằng một đa giác khác.Thuật toán Cohen-Sutherland là thuật toán dùng cách mã hóa các đầu đoạn thẳng

Các bit xi có ý nghĩa như sau :

x0 = 1 khi và chỉ khi P nằm hoàn toàn bên phải của đường biên phải

x1 = 1 khi và chỉ khi P nằm hoàn toàn bên trên của đường biên trên

x2 = 1 khi và chỉ khi P nằm hoàn toàn bên trái của đường biên trái

x3 = 1 khi và chỉ khi P nằm hoàn toàn bên dưới của đường biên dưới

*) Thuật toán có 3 bước như sau :

Bước 1 : Mã hóa P1 và P2 Đặt c1 = c(P1) và c2 = c(P2)

Bước 2 : Kiểm tra xem một đoạn có thể loại bỏ một cách dễ dàng bằng toán tử OR hay

AND :

Trang 10

Bước 3 : Nếu một đoạn không được loại bỏ một cách dễ dàng thì ta tiến hành chưa đoạn đó

ra, sau đó lại quay lại với bước 1

(a) Trước hết, tìm điểm đầu mút P sẽ xác định đường sẽ sử dụng để cắt

Nếu c1 = 0000, thì P1 không cần clip và đặt P là P2 và Q là P1

Vậy sau khi cắt thì ta còn đoạn BD là nằm bên trong cửa sổ

Thuật toán cắt xén đa giác Sutherland-Hodgman

Thực hiện bằng cách cắt toàn bộ đa giác với một cạnh của cửa sổ ( chính xác là bằng nửa mặt phẳng chứa đa giác xác định bởi cạnh của cửa sổ ) , sau đó cắt tiếp đa giác mới với cạnh tiếp theo , và tiếp tục đến khi đa giác được cắt hết bởi bốn cạnh của cửa sổ

Có 4 trường hợp tính số điểm giao của cạnh cửa số với đa giác (ko hiểu tại sao ở đây lại tính

cả hướng ?)

Trang 11

Case 1 : toàn bộ tia AB là nằm trong cửa sổ -> lấy toàn bộ cạnh này

Case 2 : lấy tia AB’ điểm kết quả là B’

Case 3 : toàn bộ tia AB nằm ngoài cửa sổ -> không có điểm kết quả

Case 4 : lấy tia A’B điểm kết quả là A’,B

CHƯƠNG 5 CÁC PHÉP CHIẾU VÀ BIẾN ĐỔI

Các loại phép biến đổi

Bảo tồn khoảng cách (Isometry)

𝑥

𝑦

Trang 12

Sử dụng tọa độ đồng nhất để kết hợp 3 phép biển đối trên lại cùng bằng phép nhân.2 tọa

độ (x,y,W) và (x/W,y/W,1) thể hiện cùng một điểm

Phải có ít nhất 1 tọa độ khác 0 , (0,0,0) không xác định Nếu W=0 , điểm đó ở vô cùng Phép tịnh tiến 2D trong tọa độ đồng nhất

Trang 13

Phép chiếu của đối tượng 3D được xác định bởi các tia chiếu xuất phát từ tâm chiếu đi

qua các điểm của đối tượng và giao với mặt phẳng chiếu

Nếu khoảng cách từ tâm chiếu đến mặt phẳng chiếu là hữu hạn thì phép chiếu là phối

cảnh , nếu khoảng cách đó là vô hạn thì đó là phép chiếu song song Phép chiếu phối cảnh có tâm

ở vô cùng sẽ trở thành phép chiếu song song

Khi xác định phép chiếu phối cảnh , phải xác định chính xác tâm chiếu Khi xác định

phép chiếu song song , phải xác định chính xác hướng chiếu

Phép chiếu phối cảnh có khuynh hướng cho ảnh giống thật , tuy nhiên nói chung là không bảo toàn được góc cũng như các đường thằng song song nên không để dùng để biểu diễn chính xác bề mặt hoặc kích thước đối tượng

Phép chiếu song song sử dụng để xác định chính xác kích thước và các đường thằng song song vì qua phép chiếu chúng vẫn song song với nhau , tuy nhiên nói chung các góc không được bảo toàn

a Phép chiếu phối cảnh

Phep chiếu phối cảnh được đặc trưng bởi định luật phối cảnh xa gần và điểm ảo (điểm

biến mất) Phối cảnh xa gần chỉ ra rằng kích thước của hình chiếu sẽ nhỏ đi nếu khoảng cách từ tâm chiếu đến mặt phẳng chiếu tăng lên và ngược lại

Trang 14

Tập các đường thẳng song song qua phép chiếu phối cảnh sẽ giao nhau ở một điểm Các điểm này được gọi là điểm biến mất

Điểm ảo chính được xác định bởi giao của các đường thằng song song với một trong ba trục chính x,y,z Các phép chiếu phối cảnh được phân loại theo số điểm ảo chính : 1 điểm , 2 điểm , 3 điểm

Phép chiếu phối cảnh 2 chiều ( có 2 điểm ảo chính)

b Phép chiếu song song

Phép chiếu trực giao đặc trưng bởi hướng chiếu vuông góc với mặt phẳng chiếu Khi hướng chiếu song song với trục chính thì tạo ra các phép chiếu mặt bằng cạnh Phép chiếu trực lượng là 1 trường hợp của trực giao khi mà hướng chiếu không song song với các trục chính Phép chiếu khi mà hướng chiếu không vuông góc với mặt phẳng chiếu là phép chiếu xiên

Phép chiếu song song được đặc trưng bởi vec-to hướng chiếu V và mặt phẳng quan sát Mặt phẳng quan sát được xác định bởi điểm nhìn tham chiêu Ro và vec-to pháp tuyến N Nếu V

có cùng hướng với N (song song, cùng chiều) thì có phép trực giao , nếu không ta có phép chiếu xiên

Trực giao (mặt bên) Phép chiếu trực giao có trục đo ( trực lượng ? ) sử dụng mặt phẳng chiếu không vuông góc với trục tọa độ , do đó có thẻ cho phép nhìn thấy nhiều mặt của vật thể cùng một lúc Các đường song song được bảo toàn , tuy nhiên các góc thì không

Trang 15

1 Phép chiếu phối cảnh

2 Phép chiếu song song – trực giao – có trục đo – cùng kích thước

3 Phép chiếu song song – trực giao – có trục đo

4 Phép chiếu song song – trực giao – có trục đo

5 Phép chiếu song song – xiên

6 Phép chiếu song song – xiên

Phép chiếu cùng kích thước có véc-tơ pháp tuyến của mặt phẳng chiếu tạo với các trục tọa độ các góc bằng nhau Chỉ có 8 hướng thỏa mãn điều kiện Ảnh chiếu từng cặp tạo với nhau các góc 120 độ

c Cơ sở toán học của các phép chiếu

Điểm P trên đối tượng có tọa độ (x,y,z) ta cần xác định tọa độ điểm ảnh (x’,y’,z’) nằm trên mặt phẳng chiếu Để đơn giản ta giả thiết mặt phẳng vuông góc với trục z

- Với phép chiếu phối cảnh , ta chiếu điểm P lên mặt phẳng chiếu đặt tại z=d và tâm chiếu đặt tại gốc tọa độ

Trang 16

- Với một phép chiếu phối cảnh khác , ta đặt tâm chiếu trên tại z=-d , mặt phẳng chiếu tại z=0

Công thức này cho phép d tiến tới vô cùng để trở thành phép chiếu song song

- Phép chiếu song song lên mặt phẳng chiếu z=0 với hướng chiếu trùng với véc-tơ Oz Tọa độ điểm P’(x’,y’,z’)

x’=x ; y’=y ; z=0 ;

Ma trận biến đổi

Ngày đăng: 22/05/2016, 16:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w