Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
583,5 KB
Nội dung
MỤC LỤC I CƠ SỞ LÝ THUYẾT ThuậttoánMidpoint vẽ đoạn thẳng qua điểm 2 Các trường hợp .4 2.1 Trường hợp 1: |Dy||Dx| 2.2.3 Cài đặt thuậttoánMidpoint trường hợp 10 Mở rộng thuậttoánMidpoint trường hợp vẽ đường thẳng với m 11 II BÀI TẬP THỰC HÀNH 12 Đề .12 Bài làm 12 THUẬTTOÁNMIDPOINT VẼ ĐƯỜNG ĐOẠN THẲNG QUA ĐIỂM I CƠ SỞ LÝ THUYẾT ThuậttoánMidpoint vẽ đoạn thẳng qua điểm ThuậttoánMidPointđưacáchchọn yi+1 yi hay yi +1 cách so sánh điểm thực Q với điểm MidPoint trung điểm S P Ta có : - Nếu điểm Q nằm điểm MidPoint, ta chọn S - Ngược lại điểm Q nằm điểm MidPoint ta chọn P Ta có dạng tổng quát phương trình đường thẳng : Ax + By + C = Với A = y2 –y1; B = - (x2 – x1) ; C = x2y1 -x1y2 Xây dựng pi trường hợp 00)? 1:-1; int dy=(Dy>0)? 1:-1; Bước 2: Xác định điểm Lặp y!=y2 ; Nếu p=0: p+=const2; x+=dx; y+=dy; Putpixel(x,y,color); 2.2.2 Lưu đồ thuậttoánMidpoint trường hợp 2: |Dy|>|Dx| 2.2.3 Cài đặt thuậttoánMidpoint trường hợp #include #include #include using namespace std; Void Bresenham_line (int x1,int y1, int x2, int y2, Color color) { int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1; int p = * Dx – Dy ; int const1 = * Dx , const2 = * (Dx-Dy); putpixel(x, y, color) ; int dx =(Dx>0)? 1:-1 ,dy=(Dy>0)? 1:-1; if(abs(Dy) > abs(Dx)) { while(y != y2) { if ( p < 0) p+=const1; else { p+=const2; x += dx; } y += dy; putpixel(x,y,color); } } } Mở rộng thuậttoánMidpoint trường hợp vẽ đường thẳng với m • ***Trường hợp đặc biệt m = giản vẽ • ***Trường hợp -1 dx=1, Dy=-4 => dy =-1; Lặp Do x1=1 != x2=3: Vì p1=6>=0 nên { p2=p1+c2=6+4=10; yA=y1+dy= 5-1 =4; } XA=x1+dx= 1+1 =2; => Vẽ điểm A (2,4) Lặp 2: xA=2 != x2=3 Do P2=10>0 { P3=p2+c2=10+4=14; YB=yA+dy= 4-1 =3; } xB=xA+dx = 2+1 =3; => Vẽ điểm B(3,3) xB=3 =x2=3 => Dừng! => Vây ta vẽ điểm M1(1,5), A(2,4) B(3,3) y x ...THUẬT TOÁN MIDPOINT VẼ ĐƯỜNG ĐOẠN THẲNG QUA ĐIỂM I CƠ SỞ LÝ THUYẾT Thuật toán Midpoint vẽ đoạn thẳng qua điểm Thuật toán MidPoint đưa cách chọn yi+ 1 yi hay yi +1 cách so sánh điểm... =2Dy-Dx Tóm tắt thuật toán: p0=2Dy-Dx yi+ 1 = yi pi =0 pi+1= pi+2Dy pi =0 Các trường hợp 2.1 Trường hợp 1: |Dy|