[School_ĐHMT] Thuật toán Midpoint vẽ đoạn thẳng
Nội dung
Xây dựng thuật toán
Đọc thêm
1. Nguyên lý chung vẽ đoạn thẳng
2. Thuật toán DDA vẽ đoạn thẳng
3. Thuật toán Breshenham vẽ đoạn thẳng
Xây dựng thuật toán
Cho 2 điểm đầu mút M1(x1, y1), và M2(x2, y2). Phương trình đưởng thẳng đi qua M1, M2 có dạng
Tại bước thứ k+1 ta thực hiện hiện tăng x lên một đơn vị và tìm cách tính y theo x với các số nguyên. Gọi S, P lần lượt là các điểm có tọa độ là trung điểm của SP (điểm Midpoint), Q là điểm cần tìm. Điểm nhận giá trị nào phụ thuộc vào vị trí của điểm Q so với điểm M. Nếu Q nằm dưới M ta lấy điểm S , ngược lại lấy điểm P .
Đặt . Ta có:
Điểm M thuộc M1M2 <=> F(M) = 0.
Điểm M nằm phía trên M1M2 <=> F(M) < 0.
Điểm M nằm phía dưới M1M2 <=> F(M) > 0.
Để xác định vị trí của M ta xét dấu của hằng số .
+/ Nếu , M nằm phía trên M1M2 khi đó Q nằm dưới M ta lấy điểm S tức là
+/ Nếu , M thuộc hoặc nằm dưới M1M2 khi đó Q nằm trên M ta lấy P tức
Bây giờ ta tính giá trị ban đầu P1.
Ta nhận thấy thuật toán Midpoint cho kết quả giống hoàn toán với thuật toán Breshenham nhưng cách xây dựng đơn giản hơn rất nhiều.
Lưu đồ thuật toán, code minh họa hoàn toàn giống với thuật toán Breshenham
0 responses on [School_ĐHMT] Thuật toán Midpoint vẽ đoạn thẳng