[School_ĐHMT – Thuật toán] Nguyên lý chung vẽ đoạn thẳng

Đọc thêm
1. Thuật toán DDA vẽ đoạn thẳng
2. Thuật toán Breshenham vẽ đoạn thẳng
3. Thuật toán Midpoint vẽ đoạn thẳng

vẽ đoạn thẳng

Cho 2 điểm đầu mút M1(x1, y1), M2(x2, y2) và màu vẽ C.
Ta đã biết phương trình đường thẳng đi qua 2 điểm M1 và M2 là:

\\  \frac{x-x1}{y-y1} = \frac{x2-x1}{y2-y1} \\ \\  \Leftrightarrow y = \frac{y2-y1}{x2-x1}(x-x1) + y1\\ \\  \Leftrightarrow y = \frac{y2-y1}{x2-x1}x + y1 - \frac{y2-y1}{x2-x1}x1

Đặt m = \frac{y2-y1}{x2-x1}

Ta có y = mx + b với (b = y1- mx1) (1)

Trong đó m được gọi là hệ số góc hay độ dốc của đường thẳng, b gọi là đoạn chắn trên trục Oy.

Từ phương trình (1) ta có thể xây dựng các vẽ đoạn thẳng M1M2 khi cho x biến thiên những khoảng Δx từ đó tính được giá trị biến thiên tương ứng của Δy = m.Δx. hoặc có thể làm ngược lại khi cho y biến thiên và tính x theo y. Do đơn vị nhỏ nhất của màn hình là 1 pixel nên ta lấy Δx = 1 (Δx = -1) hoặc Δy = 1 (Δy = -1). Việc cho x hay y thay đổi phục thuộc vào dáng của đường thẳng để có thể vẽ đoạn thẳng gần với thực tế nhất.

Nếu |dx| > |dy| thì cho x biến thiên và tính y theo x.
Nếu |dx| < |dy| thì cho y biến thiên và tính x theo y.

Do màn hình là các pixel nên việc vẽ đoạn thẳng chính là sự nguyên hóa các tọa độ sao cho gần với thực tế nhất từ đó vẽ các pixel tương ứng.

Vậy nguyên lý chung vẽ đoạn thẳng là: Cho một thành phần tọa độ x hay y nguyên biến thiên theo từng đơn vị và tính giá trị nguyên của thành phần tọa độ còn lại sao cho gần với tọa độ thực nhất.