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

Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 2 pdf

5 369 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 468,21 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CÁC THUẬT TOÁN VẼ ĐƯỜNG Giả sử tọa độ các điểm nguyên sau khi xấp xỉ đối tượng thực lần lượt là.. Bài toán đặt ra là nếu biết được là tọa độ nguyên xác định ở bước thứ i, điểm nguyên tiế

Trang 1

font truetype, font CHR,

Kích thước : chiều cao và chiều rộng của kí tự Các kí tự định nghĩa bằng đường gấp khúc

có thể dễ dàng thay đổi kích thước hơn là các kí tự định nghĩa bằng mẫu các pixel

Khoảng cách giữa các kí tự

Sự canh chỉnh (gióng lề) : canh trái (left text), canh phải (right text), canh giữa (center text), canh đều nhau (justify text)

Cách hiển thị tuần tự của các kí tự : có thể là phải sang trái, từ trên xuống dưới, từ trái sang phải, từ dưới lên trên

Hướng của kí tự

Hình 2.9 – Dạng bitmap và vector của font kí tự B

2 CÁC THUẬT TOÁN VẼ ĐƯỜNG

Giả sử tọa độ các điểm nguyên sau khi xấp xỉ đối tượng thực lần lượt là Đây là các điểm nguyên

sẽ được hiển thị trên màn hình

Bài toán đặt ra là nếu biết được là tọa độ nguyên xác định ở bước thứ i, điểm nguyên tiếp theo

sẽ được xác định như thế nào

Nhận xét rằng để đối tượng hiển thị trên lưới nguyên được liền nét, các điểm mà có thể chọn chỉ là một trong tám điểm được đánh số từ 1 đến 8 trong hình 2.10 (điểm đen chính là ).Hay nói cách khác :

Dáng điệu của đường sẽ cho ta gợi ý khi chọn một trong tám điểm trên Cách chọn các điểm như thế nào sẽ tùy thuộc vào từng thuật toán trên cơ sở xem xét tới vấn đề tối ưu tốc độ

Trang 2

Hình 2.10 – Các điểm có thể chọn ở bước (i+1)

2.1 Thuật toán vẽ đoạn thẳng

Xét đoạn thẳng có hệ số góc và

Với các đoạn thẳng dạng này, nếu là điểm đã xác định được ở bước thứ i (điểm màu đen) thì điểm cần chọn ở bước thứ (i+1) sẽ là một trong hai trường hợp như hình vẽ sau :

Hình 2.11 – Các điểm chọn ở bước (i+1) cho trường hợp

đoạn thẳng có hệ số góc 0<m<1

Như vậy :

Vấn đề còn lại là cách chọn một trong hai điểm trên như thế nào để có thể tối ưu về mặt tốc độ

2.1.1 Thuật toán DDA (Digital Differential Analyzer)

Với thuật toán DDA, việc quyết định chọn là hay , dựa vào phương trình của đoạn thẳng Nghĩa là, ta sẽ tính tọa độ của điểm thuộc về đoạn thẳng thực Tiếp

đó, sẽ là giá trị sau khi làm tròn giá trị tung độ y.

Như vậy :

Trang 3

Hình 2.12 – Minh họa thuật toán DDA

Nếu tính trực tiếp giá trị thực y ở mỗi bước từ phương trình thì phải cần một phép toán nhân và một phép toán cộng số thực Để cải thiện tốc độ, người ta tính giá trị thực của y ở mỗi bước theo cách sau để khử phép tính nhân trên số thực :

Nhận xét rằng :

Lưu đồ thuật toán DDA vẽ đoạn thẳng qua hai điểm (x 1 , y 1 ) và (x 2 ,y 2 )

Trang 4

Cài đặt minh họa thuật toán DDA

#define Round(a) int(a+0.5) int Color = GREEN;

void LineDDA (int x1, int y1, int x2, int y2)

{

int x = x1;

float y = y1;

float m = float(y2-y1)/(x2-x1);

putpixel(x, Round(y), Color);

for(int i=x1; i<x2; i++)

{

x++;

y +=m;

putpixel(x, Round(y), Color);

Trang 5

} // LineDDA

Nhận xét

Việc sử dụng công thức để tính giá trị y tại mỗi bước đã giúp cho thuật toán DDA nhanh hơn hẳn so với cách tính y từ phương trình do khử được phép nhân trên số thực Tuy nhiên, việc cộng dồn giá trị thực m vào y có thể sẽ tích lũy sai số làm cho hàm làm tròn có kết quả sai dẫn tới việc xác định vị trí của điểm vẽ ra bị chệch hướng so với đường thẳng thực Điều này chỉ xảy ra khi vẽ đoạn thẳng khá dài

Tuy đã khử được phép nhân số thực nhưng thuật toán DDA vẫn còn bị hạn chế về mặt tốc

độ do vẫn còn phép toán cộng số thực và làm tròn Có thể khắc phục thao tác cộng số thực

m và làm tròn trong thuật toán bằng cách nhận xét với Dy, Dx là các số nguyên.

2.1.2 Thuật toán Bresenham

Thuật toán Bresenham đưa ra cách chọn là hay theo một hướng khác sao cho có thể tối ưu hóa về mặt tốc độ so với thuật toán DDA Vấn đề mấu chốt ở đây là làm thế nào để hạn chế tối đa các phép toán trên số thực trong thuật toán

Hình 2.13 – Minh họa thuật toán Bresenham

Đặt

Xét tất cả các vị trí tương đối của y so với và , việc chọn điểm là S hay P phụ

thuộc vào việc so sánh d 1 và d 2 hay dấu của :

Nếu , ta sẽ chọn điểm S, tức là

Ngày đăng: 26/07/2014, 17:20

HÌNH ẢNH LIÊN QUAN

Hình 2.9 – Dạng bitmap và vector của font kí tự B - Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 2 pdf
Hình 2.9 – Dạng bitmap và vector của font kí tự B (Trang 1)
Hình 2.10 – Các điểm   có thể chọn ở bước (i+1) - Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 2 pdf
Hình 2.10 – Các điểm có thể chọn ở bước (i+1) (Trang 2)
Hình 2.11 – Các điểm   chọn ở bước (i+1) cho trường hợp - Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 2 pdf
Hình 2.11 – Các điểm chọn ở bước (i+1) cho trường hợp (Trang 2)
Hình 2.12 – Minh họa thuật toán DDA - Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 2 pdf
Hình 2.12 – Minh họa thuật toán DDA (Trang 3)
Hình 2.13 – Minh họa thuật toán Bresenham - Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 2 pdf
Hình 2.13 – Minh họa thuật toán Bresenham (Trang 5)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w