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

Bài giảng Các đối tượng đồ họa cơ sở - Phan Phúc Doãn

16 66 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 454,54 KB

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

Nội dung

Bài giảng Các đối tượng đồ họa cơ sở do Phan Phúc Doãn thực hiện nhằm cung cấp cho các bạn những kiến thức về hệ tọa độ thực và hệ tọa độ thiết bị; điểm; đường thẳng, đường gấp khúc; vùng tô; kí tự, chuỗi kí tự; đường thẳng trên màn hình; đặc điểm của đường thẳng nguyên; thuật toán Slope - Intercept và một số nội dung khác.

Trang 1

Các đ i t ố ượ ng đ  h a c  s ồ ọ ơ ở

Các đ i t ố ượ ng đ  h a c  s ồ ọ ơ ở

Phan Phúc Doãn

Trang 2

H  t a đ  th c và h  t a đ  thi t b ệ ọ ộ ự ệ ọ ộ ế ị

H  t a đ  th c và h  t a đ  thi t b ệ ọ ộ ự ệ ọ ộ ế ị

• H  t a đ  th c: H  t a đ  th c: ệ ọ ệ ọ ộ ự ộ ự

– T a đ  là s  th c, liên t c T a đ  là s  th c, liên t cọ ọ ộ ộ ố ự ố ự ụ ụ

– L n, nh  tùy ý L n, nh  tùy ýớ ớ ỏ ỏ

• H  t a đ  thi t b :H  t a đ  thi t b :ệ ọ ệ ọ ộ ộ ế ị ế ị

– T a đ  nguyên, r i r c T a đ  nguyên, r i r cọ ọ ộ ộ ờ ạ ờ ạ

– T a đ  b  gi i h n trong m t kho ng nào đó T a đ  b  gi i h n trong m t kho ng nào đóọ ọ ộ ị ớ ạ ộ ị ớ ạ ộ ộ ả ả

– X thu c [0, 639] X thu c [0, 639]ộ ộ

– H  t a đ  thi t b  qui  H  t a đ  thi t b  qui ệ ọ ệ ọ ộ ộ ế ị ế ị ướ ước bàn tay trái c bàn tay trái

Trang 3

Đi m

Đi m

• Là thành ph n c  s  Là thành ph n c  s  ầ ầ ơ ở ơ ở

• T a đ , màu s cT a đ , màu s cọ ọ ộ ộ ắ ắ

Trang 4

Đ ườ ng th ng, đ ẳ ườ ng g p khúc

• PhPhươ ương trình đo n ch n:ng trình đo n ch n:ạ ạ ắ ắ

• PhPhươ ương trình t ng quát: Ax + By + C = 0ng trình t ng quát: Ax + By + C = 0ổ ổ

• PhPhươ ương trình tham s : ng trình tham s : ố ố

• ĐĐườ ường g p khúc là t p các đo n th ng n i nhau xác đ nh b i ng g p khúc là t p các đo n th ng n i nhau xác đ nh b i ấ ấ ậ ậ ạ ạ ẳ ẳ ố ố ị ị ở ở

các đ nh

các đ nh

 

1 2 1 1 2 1 ( x x y y − )( − = − ) ( y y x x )( − )

(1 ) (1 )

Trang 5

Đ ườ ng th ng, đ ẳ ườ ng g p khúc (tt)

Đ ườ ng th ng, đ ẳ ườ ng g p khúc (tt)

• Màu s cMàu s cắ ắ

• Đ  r ng nét vĐ  r ng nét vộ ộ ộ ộ ẽ ẽ

• Ki u nét v : li n, đ t, Ki u nét v : li n, đ t, ể ể ẽ ề ẽ ề ứ ứ

Trang 6

Vùng tô

• ĐĐườ ường biên và vùng bên trongng biên và vùng bên trong

• ĐĐườ ường biên: gi ng đo n th ngng biên: gi ng đo n th ngố ố ạ ạ ẳ ẳ

• Vùng bên trong: màu tô và m u tôVùng bên trong: màu tô và m u tôẫ ẫ

Trang 7

Kí t , chu i kí t ự ỗ ự

Kí t , chu i kí t ự ỗ ự

• Màu s cMàu s cắ ắ

Font chữ

• Kích thKích thướ ướcc

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

• S  canh ch nhS  canh ch nhự ự ỉ ỉ

• Cách hi n th  tu n t  các kí tCách hi n th  tu n t  các kí tể ể ị ầ ự ị ầ ự ự ự

• HHướ ướng c a kí tng c a kí tủ ủ ự ự

Trang 8

V  đ ẽ ườ ng th ng

V  đ ẽ ườ ng th ng

Trang 9

Đ ườ ng th ng trên màn hình

Đ ườ ng th ng trên màn hình

Đường th ng đẳ ược hình thành 

Đường th ng đẳ ược hình thành 

t  các đi m r i r cừ ể ờ ạ

t  các đi m r i r cừ ể ờ ạ

Các đi m để ược xác đ nh t  ị ừ

Các đi m để ược xác đ nh t  ị ừ

phương trình c a đủ ường 

phương trình c a đủ ường 

th ng

th ng

Ideal Line Rasterized line

Trang 10

Đ c đi m c a đ ặ ể ủ ườ ng th ng nguyên

Đ c đi m c a đ ặ ể ủ ườ ng th ng nguyên

X p x  đấ ỉ ường th ng th cẳ ự

X p x  đấ ỉ ường th ng th cẳ ự

Không liên t c

Không liên t c

D ng răng c a (hình b c ạ ư ậ

D ng răng c a (hình b c ạ ư ậ

thang) Nhanh – Thao tác c  b n đ  ơ ả ể

Nhanh – Thao tác c  b n đ  ơ ả ể

t o thành các đ i tạ ố ượng 

t o thành các đ i tạ ố ượng 

khác

Trang 11

Ph ươ ng trình đ ườ ng th ng th c ẳ ự

Ph ươ ng trình đ ườ ng th ng th c ẳ ự

 m m   x   b b

Dx  x2   x1

Dy  y2   y1

m   Dy / Dx

b   y1   m m   x1

(x 1 ,y 1 )

(x 2 ,y 2 ) Dy

Dx

Trang 12

Thu t toán Slope ­ Intercept

SlopeInterceptLine(int x1, int y1, int x2, int y2, int color) { int Dx = x2 – x1;

int Dy = y2 – y1;

int x = x1, y = y1;

putpixel(x, y, color);

if (Dx != 0) {

float m = (float)Dy / (float)Dx;

float b = y1 - m*x1;

int stepX = (x2 > x1) ? 1 : -1;

while (x != x2) {

x += stepX;

y = round(m*x + b);

putpixel(x, y, color);

}

}

}

Trang 13

L u ý ư

L u ý ư

Khi đ  l n c a h  s  góc độ ớ ủ ệ ố ường th ng l n h n ẳ ớ ơ

Khi đ  l n c a h  s  góc độ ớ ủ ệ ố ường th ng l n h n ẳ ớ ơ

1 thì  các đi m trên để ường th ng r i r c.ẳ ờ ạ

1 thì  các đi m trên để ường th ng r i r c.ẳ ờ ạ

Kh c ph c:Tính t a đ  x theo y, nghĩa là x = ắ ụ ọ ộ

Kh c ph c:Tính t a đ  x theo y, nghĩa là x = ắ ụ ọ ộ

g(y)

(x 2 ,y 2 )

(x 1 ,y 1 )

Dy

Dx

Trang 14

Thu t toán c i ti n ậ ả ế

Thu t toán c i ti n ậ ả ế

ImprovedSlopeInterceptLine(int x1, int y1, int

x2, int y2, int color) {

int Dx = x2 – x1;

int Dy = y2 – y1;

int x = x1, y = y1;

putpixel(x, y, color);

if (abs(Dx) > abs(Dy)) {

float m = (float)Dy / (float)Dx;

float b = y1 - m*x1;

int stepX = (Dx < 0) ? -1 : 1;

while (x != x2) {

x += stepX;

putpixel(x, round(m*x + b), color);

}

} else if (Dy != 0) {

float m = (float)Dx / (float)Dy;

float b = x - m*y;

int stepY = (Dy < 0) ? -1 : 1;

while (y != y2) {

y += stepY;

putpixel(round(m*y + b), y, color);

}

}

}

Trang 15

C i ti n ả ế

C i ti n ả ế

Vòng l p bên trong:

Vòng l p bên trong:

while (x != x2) {

x += stepX;

putpixel(x, round(m*x + b), color);

}

Giá tr  c a y đị ủ ược tính tr c ti p t  phự ế ừ ương trình

Giá tr  c a y đị ủ ược tính tr c ti p t  phự ế ừ ương trình

Chúng ta có th  tính giá tr  c a y b ng cách khác:ể ị ủ ằ

Chúng ta có th  tính giá tr  c a y b ng cách khác:ể ị ủ ằ

float t = m * x + b + 0.5;

while (x != x2) {

x += stepX;

t += m;

putpixel(x, (int)t, color);

}

Trang 16

Digital Differential Analyzer

DDALine(int x1, int y1, int x2, int y2, int color) {

int Dx = x2 – x1;

int Dy = y2 – y1;

float t = 0.5;

int x = x1, y = y1;

putpixel(x, y, color);

if (abs(Dx) > abs(Dy)) {

float m = (float)Dy / (float)Dx;

float b = y - m*x;

int stepX = (Dx < 0) ? -1 : 1;

t += b + m*x;

m *= (float)stepX;

while (x != x2) {

x += stepX;

t += m;

putpixel(x, (int)t, color);

}

} else if (Dy != 0) {

// swap x & y to do other slopes

}

}

Ngày đăng: 30/01/2020, 08:08

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN