1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng Đồ họa máy tính: Vẽ đường thẳng và đường tròn - Ma Thị Châu (2017)

10 13 0

Đ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 10
Dung lượng 256,89 KB

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

Nội dung

– Trong máy tính chỉ có thể được như vậy với các đường. thẳng song song với trục tọa độ hoặc có góc 45 o với trục tọa[r]

Trang 1

Đồ họa máy tính

Vẽ đường thẳng và đường tròn

Trang 2

Hướng tới một đường thẳng lý tưởng

rời rạc

thực tế trong trường hợp chỉ có hai cách thể hiện một điểm:

– Điểm được thắp sáng hoặc không thắp sáng

Trang 3

Thế nào là một đường thẳng lý tưởng

– Trong máy tính chỉ có thể được như vậy với các đường thẳng song song với trục tọa độ hoặc có góc 45o với trục tọa độ

– Đều trên một đường thẳng và đều trên tất cả các đường thẳng

nhanh

Trang 4

Đường thẳng đơn giản

Dựa trên phương trình đường

thẳng:

y = mx + b Cách tiếp cận đơn giản:

tăng x, rồi tìm ra y

Cần các tính toán số thực

Trang 5

Thuật toán có vẻ ổn với những

đường thẳng có hệ số góc nghiêng

(slope) bằng 1 hoặc nhỏ hơn,

tuy nhiên, nó không tốt cho những

đường thẳng với hệ số góc nghiêng

lớn hơn 1 – các đường thẳng trông

rời rạc – phải thêm các điểm vào các

cột thì trông mới ổn

Giải pháp? - sử dụng phương pháp

Trang 6

Thay đổi thuật toán cho từng góc phần tám (45°) của hệ tọa độ

Có thể thay đổi tên của trục tọa độ, HOẶC, tăng theo trục x nếu

Trang 7

Thuật toán DDA

(Phân tích vi phân số hóa)

) (

) (

) (

) (

1 2

1

1 2

1

y y

t y

t y

x x

t x

t

x

-+

=

-+

=

) , (

) , (

2 2

1 1

y x

y x

Start point

End point

Trang 8

-Thuật toán DDA

dt

) (

) (

) (

) (

1 2

1

1 2

1

y y

t y t

y

x x

t x t

x

-+

=

-+

=

dt

dy y

y

dt

dx x

x

cu moi

cu moi

+

=

+

=

1

<

dt

dx

1

<

dt dy

Trang 9

Thuật toán DDA

line(int x1, int y1, int x2, int y2)

{

float x,y;

int dx = x2-x1, dy = y2-y1;

int n = max(abs(dx),abs(dy));

float dt = n, dxdt = dx/dt, dydt = dy/dt;

x = x1;

y = y1;

while( n ) {

point(round(x),round(y));

x += dxdt;

n - range of t.

Trang 10

Thuật toán DDA

thực.

phép toán số nguyên?

hiện thời và có thể chạy rất nhanh

Ngày đăng: 08/03/2021, 17:21

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm