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

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

56 487 6

Đ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 56
Dung lượng 218,01 KB

Nội dung

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

w