Chương 2: Các thuật toán đồ họa cơ sở-Ths.Vũ Minh Yến ppt

56 487 6
Chương 2: Các thuật toán đồ họa cơ sở-Ths.Vũ Minh Yến ppt

Đ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

Chương Chương 2 2 C C á á c thu c thu ậ ậ t to t to á á n đ n đ ồ ồ ho ho ạ ạ c c ơ s ơ s ở ở Giảng viên: Ths.Vũ Minh Yến Tổ HTTT- Khoa CNTT N N ộ ộ i dung i dung 2.1. C 2.1. C á á c thu c thu ậ ậ t to t to á á n v n v ẽ ẽ đo đo ạ ạ n th n th ẳ ẳ ng ng 2.2. C 2.2. C á á c thu c thu ậ ậ t to t to á á n v n v ẽ ẽ đư đư ờ ờ ng tròn ng tròn 2.3. C 2.3. C á á c thu c thu ậ ậ t to t to á á n v n v ẽ ẽ elip elip 2.4. C 2.4. C á á c thu c thu ậ ậ t to t to á á n clipping n clipping 2.5. C 2.5. C á á c thu c thu ậ ậ t to t to á á n tô m n tô m à à u u 2.1. C 2.1. C á á c thu c thu ậ ậ t to t to á á n v n v ẽ ẽ đo đo ạ ạ n th n th ẳ ẳ ng ng  Bài toán:  Input: Cho đoạn thẳng AB: A(x A ; y A ), B(x B ; y B ).  Output: Vẽ đoạn thẳng AB trên màn hình.  Giải quyết bài toánThuật toán làm tròn số  Thuật toán Bresenham Thu Thu ậ ậ t to t to á á n l n l à à m tròn s m tròn s ố ố  Phương trình đường thẳng AB (x A ≠ x B ):  Đặt  Khi đó phương trình đường thẳng AB: AA AB AB yxx xx yy y +− − − = )( AB AB xx yy m − − = ( ) AA yxxmy + − = Thu Thu ậ ậ t to t to á á n l n l à à m tròn s m tròn s ố ố  Chia thành 4 trường hợp:  TH1: AB song song với Oy  TH2: AB song song với Ox  TH3: |m|≤1  TH4: |m|>1 m=1 m= - 1 (1) y O x (4) (3) (3) (2) (4) Thu Thu ậ ậ t to t to á á n l n l à à m tròn s m tròn s ố ố  TH1: x A =x B (giả sử y A < y B )  Bước 1: x=x A ; y=y A ;  Bước 2: Vẽ điểm (x; y);  Bước 3: y=y+1;  Bước 4: Nếu y<=y B thì: Bước 2;  Bước 5: Kết thúc. A y O x B x A =x B y A y B Thu Thu ậ ậ t to t to á á n l n l à à m tròn s m tròn s ố ố   TH2 TH2: y A =y B (Tương tự TH1) (Giả sử x A < x B )  Bước 1: x=x A ; y=y A ;  Bước 2: Vẽ điểm (x; y);  Bước 3: x=x+1;  Bước 4: Nếu x<=xB thì: Bước 2;  Bước 5: Kết thúc. A y O B x A y A =y B x B Thu Thu ậ ậ t to t to á á n l n l à à m tròn s m tròn s ố ố   TH3 TH3: |m| ≤ 1  Bước 1: Nếu x A > x B thì: Hoán đổi vị trí A,B (Đảm bảo x A < x B )  Bước 2: x=x A ; y=y A ;  Bước 3: Vẽ điểm (x; y);  Bước 4: x=x+1; y=Round(m(x-x A )+y A );  Bước 5: Nếu x≤ x B thì: Bước 3;  Bước 6: Kết thúc; m=1 m= - 1 y O x A B x A x B Thu Thu ậ ậ t to t to á á n l n l à à m tròn s m tròn s ố ố   TH4 TH4: |m| > 1 tương tự TH3 khi đổi vai trò x, y.  Bước 1: Nếu y A > y B thì: Hoán đổi vị trí A,B (Đảm bảo y A < y B )  Bước 2: x=x A ; y=y A ;  Bước 3: Vẽ điểm (x; y);  Bước 4: y=y+1; x=Round(1/m(y-y A )+x A );  Bước 5: Nếu y≤ y B thì: Bước 2;  Bước 6: Kết thúc; m=1 m= - 1 y O x A B y A y B Thu Thu ậ ậ t to t to á á n Breseham n Breseham  TH1 x A =x B , TH2: y A =y B : giống phương pháp làm tròn số.  Còn lại: chia làm 4 trường hợp  TH3: 0 < m ≤ 1  TH4: -1 ≤ m <0  TH5: m > 1  TH6: m < -1 m=1 (3) (4) (5) (6) O x y [...]... M6 M5 M4 2.2 Các thu t toán v ư ng tròn Bài toán: Input: Cho tâm O(0,0), bán kính r Output: V ư ng tròn tâm O, bán kính r Gi i quy t bài toán: Thu t toán làm tròn s Thu t toán x p x Thu t toán Bresenham Thu t toán làm tròn s Theo phương trình is : Cung AB: y = r 2 − x 2 , x ∈ 0; r / 2 Xét trên cung AB: n u ∆x=1 thì |∆y|≤1 nên l y s theo x Thu t toán: [ y A ] Bư c 1: x=0; y=r; Bư c 2: V 8 i m: M1(x,y),... ∆x=1 ⇒ ∆y≤1 ⇒ L y s theo x Cung MB: ∆x=1 ⇒ ∆y≥1 ⇒ L y s theo y 2.3 Các thu t toán v elip Thu t toán làm tròn s : A Tính trên cung AM: Bư Bư Bư Bư Bư c 1: x=0; y=b; c 2: V 4 i m 2 2 c 3: x=x+1; y = (b / a ) a − x ; c 4: N u y≥ xb2/a2 thì: Bư c 2; c 5: K t thúc GradF(M) M O Tính trên cung MB: tương t như tính trên cung AM khi i vai trò x và y B 2.3 Các thu t toán v elip Thu t toán Bresenham: (xét... + 1;   y =  yi  i +1  yi − 1   xi ư ng tròn) xi+1 d1 ≤ d 2 d1 > d 2 d2≈ yi y ≈d1 x 2.3 Các thu t toán v elip Thu t toán Vanaken: 2.4 Các thu t toán clipping Bài toán: y Input: Cho c a s : (x1; y1), (x2; y2) Cho o n th ng AB: (xA;yA), (xB; yB) Output: Hi n th ph n o n th ng AB trong c a s O x Thu t toán Cohen-Surtheland Xét i m P(x; y): Quy ư c: KOD(P)=b4b3b2b1 (bi={0;1}) b1=1: n b2=1: n b3=1:...Thu t toán Breseham TH3: 0 < m ≤ 1 TH3 O(0,0) xi xi+1=xi+1 yi d2 yi+1= ? y d1 x Thu t toán Breseham s toán h c xây d ng thu t toán: Gi s ta i m th i: (xi; yi) Xác nh i m th i+1: (xi+1; yi+1)=? Ta có: 0< m ≤ 1 ⇒ N u ∆x=1⇒ ∆y≤1, trong ó ∆x=xi+1-xi; ∆y=yi+1-yi Như v y: α ≤ 45 xi+1= xi+1 yi+1= yi n u d1 ≤ d2 yi+1= yi+1 n u d1>d2 0 Thu t toán Breseham Xét d1= y(xi+1) - yi... t toán Breseham Tương t ta Pi+1= 2dy.xi+1-2dx.yi+1+ 2dy(1-xA)+2dy.yA-dx Xét ∆P=Pi+1-Pi =2dy(xi+1-xi) – 2dx(yi+1-yi) =2dy-2dx(yi+1-yi) Gi s Pi≥0 ⇔ d1-d2 ≥ 0 ⇔ d1 ≥ d2 ⇔ yi+1=yi+1 ⇒ ∆P=2dy-2dx=const1 Gi s Pi . th ẳ ẳ ng ng  Bài toán:  Input: Cho đoạn thẳng AB: A(x A ; y A ), B(x B ; y B ).  Output: Vẽ đoạn thẳng AB trên màn hình.  Giải quyết bài toán  Thuật toán làm tròn số  Thuật toán Bresenham Thu Thu ậ ậ t. Chương Chương 2 2 C C á á c thu c thu ậ ậ t to t to á á n đ n đ ồ ồ ho ho ạ ạ c c ơ s ơ s ở ở Giảng viên: Ths .Vũ Minh Yến Tổ HTTT- Khoa CNTT N N ộ ộ i dung i. 2: Vẽ điểm (x; y);  Bước 3: y=y+1;  Bước 4: Nếu y<=y B thì: Bước 2;  Bước 5: Kết thúc. A y O x B x A =x B y A y B Thu Thu ậ ậ t to t to á á n l n l à à m tròn s m tròn s ố ố   TH2 TH2:

Ngày đăng: 29/06/2014, 10:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan