Thể hiện thế giới thực trên máy tính• Chuyển tọa độ thực sang tọa độ tương đối trên máy tính • Các đối tượng hình học thực được biểu diễn bằng các đối tượng hình học được cung cấp bởi má
Trang 1Chương 2 – Một số khái niệm cơ bản
Trang 2Không gian màu RGB
• Màu có được bằng cách trộn ba màu cơ bản là
Red, Green, Blue Nhắc lại: phần cấu trúc và hoạt động của màn hình CRT
• Đặc tả màu: mỗi thành phần màu tương ứng với 1
số từ 0 đến giá trị lớn nhất (tùy theo số bit cho mỗi điểm ảnh)
• Các màu quen thuộc:
black = (0, 0, 0) red = (255, 0, 0)
green = (0, 255, 0) blue = (0, 0, 255)
Trang 4Điểm ảnh (Pixel)
• Giá trị lớn nhất cho mỗi thành phần màu là 255 ⇒ dùng 8 bit để đặt tả mỗi thành phần ⇒ dùng 24 bit để đặt tả màu cho mỗi pixel
• Hệ màu RGB được sử dụng rộng rãi trong các hệ thống đồ họa hiện nay
Trang 5Kiểu dữ liệu cho điểm ảnh
type point = record
x, y : real
end;
• Xác định bởi 2 tọa độ (x, y)
Trang 6Thiết lập 1 điểm ảnh
• VB: PSet (x, y), color
x, y: integer
color: QBColor(integer): màu lấy từ bảng màu
• Pascal: SetPixel(x, y, color)
Trang 8Định dạng file ảnh
• Ảnh được lưu xuống tập tin ở các định dạng khác nhau:
– BMP: dữ liệu được lưu trữ trực tiếp không biến đổi, giống như trên bộ nhớ
– JPG, TIF, …: các dữ liệu được nén có mất mát
• Useful link:
Trang 9Device Independent Bitmap
• Định dạng ảnh không phụ thuộc vào thiết bị hiển thị và
định dạng lưu trữ
Trang 10Offscreen bitmap
• Các dữ liệu chuẩn bị hiển thị có thể thao tác trên các “bộ đệm giả” rồi xuất kết quả ra màn hình Các bộ đệm giả có thể nằm trên:
– Bộ nhớ chính, xuất ra bằng lệnh chép một khối
bộ nhớ đã thao tác ra bộ đệm hiển thị.
– Bộ đệm khung không tích cực (non-active
frame buffer), hiển thị bằng lệnh lật (flip) trang (chuyển địa chỉ bắt đầu của bộ đệm khung tích
Trang 11• Chuỗi đoạn thẳng (polyline)
• Đa giác (polygon)
• Kí tự (text)
Trang 13Biểu diễn đoạn thẳng trên màn hình
• Xác định tập các điểm ảnh biểu diễn “tốt nhất” cho đoạn thẳng.
Trang 14Quy tắc chọn điểm ảnh xấp xỉ
• Định nghĩa sai số: e(Ti) = y* - yi - 1
e(Si) = (yi - 1 + 1) - y*
• Nếu x = xa thì y = ya
• Nếu xa < x < xb: tính y*, e(Ti), e(Si), rồi xét:
Nếu e(Ti) < e(Si) thì chọn Ti, ngược lại chọn Si
• Nếu x = xb thì y = yb
• Vẽ đoạn thẳng bằng lệnh:
• Giải thuật chỉ tính toán dựa trên số nguyên: giải
Trang 15Chuỗi đoạn thẳng (polyline)
• Chuỗi các đoạn thẳng nối
Trang 16Đa giác (polygon)
• Bao gồm tập đỉnh (vertex) và tập cạnh (edge)
• Là chuỗi đoạn thẳng kín (trùng các đỉnh đầu và
Trang 18top-• Trường hợp đặc biệt: hình vuông (square)
• Cấu trúc có sẵn: Rect, trong các ngôn ngữ thông dụng
• Vẽ hình chữ nhật:
VB: Line (x1, y1) – (x2, y2), [color], [B][F]
Trang 19• Trường hợp đặc biệt: hình tròn (circle) có 2 bán kính bằng nhau.
• Vẽ ellipse:
VB: Circle (x, y), radius, [color], [start], [end], [aspect]
aspect: vertical dim./horizontal dim.
Pascal: Ellipse(left, top, right, bottom)
• Vẽ ellipse nhanh dựa trên phép tính nguyên: giải thuật Michener (xem chương 9)
Trang 21• Font được điều chỉnh nhỏ thêm cho từng kích thước
• Cần được chuyển sang dạng bitmap (một cách tự động) khi dùng
• Xuất 1 chuỗi kí tự ra màn hình:
VB: Print Msg
tại tọa độ CurrentX, CurrentY Pascal: Text(x, y, string)
Trang 22• Toạ độ thực (world coordinate system):
– Điểm trong mặt phẳng có tọa độ (x, y)
Trang 23Thể hiện thế giới thực trên máy tính
• Chuyển tọa độ thực sang tọa độ tương đối trên máy tính
• Các đối tượng hình học thực được biểu diễn bằng các đối tượng hình học được cung cấp bởi máy tính
• Không gian hiển thị tại 1 thời điểm của máy tính có hạn ⇒
chỉ 1 phần của thế giới thực được hiển thị tại 1 thời điểm
Trang 24– Vùng nhìn (viewport): phần trên màn hình mà cửa sổ được ánh xạ
lên Vùng nhìn cĩ thể chiếm tồn bộ màn hình.
High
Vùng nhìn
Màn hình Hệ tọa độ thực
Cửa sổ
Trang 25• Kích thước và vị trí của cửa sổ là tùy ý.
• Vùng nhìn phải nằm trong giới hạn của màn hình.
• Hệ số tỷ lệ chiều ngang trên chiều dọc của cửa sổ
và vùng nhìn khơng cần phải bằng nhau
Hệ tọa độ thực Cửa sổ
Width
Màn hình High
Vùng nhìn
Trang 26Hiện thực phép nhìn
• Ánh xạ các đối tượng từ cửa sổ lên vùng nhìn.
• Chỉ có một phần của đối tượng trong thế giới thực trong cửa sổ mới nhìn thấy ⇒ cần xén (clipping)
đi các phần nằm ngoài cửa sổ
Xem các giải thuật chi tiết ở chương 4
Window
Trang 27• Mỗi quá trình quản lý duy nhất 1 cửa sổ đang được tích
cực (active) tại 1 thời điểm ⇒ cửa sổ tích cực này được
xem là “màn hình” luận lý dùng để hiển thị cho quá trình
• Thay đổi kích thước cửa sổ tích cực ⇒ kích thước màn
hình luận lý thay đổi theo
Trang 28Tọa độ qui chuẩn
• Cần hiển thị trên nhiều màn hình cĩ kích thước khác nhau:
Hệ tọa độ thực
Cửa sổ
Màn hình 1
Vùng nhìn
Màn hình High
Vùng nhìn
Width 1
0
• Giảm phụ thuộc vào thiết bị hiển thị
Trang 29• Không gian màu RGB
• Các đối tượng cơ bản và cách hiển thị:
– Điểm ảnh
– Ảnh
– Đoạn thẳng, chuỗi đoạn thẳng, đa giác
– Các hình 2D cơ bản: hình chữ nhật, hình vuông, hình tròn, ellipse
• Các hệ thống tọa độ: thực, màn hình, qui chuẩn