Đồ họa Máy tính - Chương II
Chia sẻ bởi Nguyễn Việt Vương |
Ngày 29/04/2019 |
183
Chia sẻ tài liệu: Đồ họa Máy tính - Chương II thuộc Bài giảng khác
Nội dung tài liệu:
Chương 2 –
Một số khái niệm cơ bản
Khô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)
yellow = (255, 255, 0) white = (255, 255, 255)
Không gian màu RGB (tt.)
Đ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
Kiể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)
Thiế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)
Lấy thông tin về điểm ảnh
VB: Point(x, y) RGB values
Pascal: GetPixel(x, y) RGB values
Đị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:
Device 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ữ
Offscreen 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 cực)
Các đối tượng hình học cơ bản
Điểm
Đoạn thẳng
Chuỗi đoạn thẳng (polyline)
Đa giác (polygon)
Kí tự (text)
Đoạn thẳng
Xác định bởi 2 điểm đầu là 2 điểm ảnh (xa , ya) và (xb , yb), với các toạ độ là đều là số nguyên.
Biểu diễn tường minh của đường thẳng:
y = m(x – xa) + ya
Hệ số góc: m = y / x với
y = yb – ya
x = xb – xa
Biể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.
Xét trường hợp: xa < xb và 0 < m < 1
Sinh các điểm ảnh theo phương pháp tăng dần x từ xa đến xb
Quy 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 thuật Bresenham (xem chương 9)
Chuỗi đoạn thẳng (polyline)
Chuỗi các đoạn thẳng nối tiếp nhau.
Lưu trữ chuỗi đoạn thẳng: lưu tập các điểm ảnh (đỉnh - vertex), bằng dãy hay danh sách liên kết.
Vẽ chuỗi đoạn thẳng: vẽ tuần tự các đoạn thẳng nối các đỉnh
Đ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à đuôi).
Phân loại:
Lồi:
Lõm:
Chéo: có ít nhất 1 cặp cạnh cắt nhau
Các bài toán:
Xác định loại (lồi, lõm, chéo)
Vẽ
Tô màu
Các hình 2D thông dụng
Hình chữ nhật (rectangle)
Ellipse
Hình chữ nhật
4 đỉnh, các góc trong là góc vuông, cạnh song song với trục
Lưu trữ: 4 giá trị hay 2 đỉnh chéo (thường là top-left, right-bottom)
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]
Pascal: Rectangle(left, top, right, bottom)
Ellipse
Lưu trữ: tâm và 2 bán kính theo 2 chiều x và y, hoặc hình chữ nhật bao, trục đối xứng của ellipse song song với trục tọa độ
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)
Kí tự (text)
Xác định bởi mã kí tự trên bảng mã và font
Bảng mã:
ASCII: 7 bit – 128 kí tự, 0-40 cho các kí tự điều khiển
ASCII mở rộng: 8 bit – 256 kí tự
Unicode: 2 byte – 256 bit
Hai dạng font:
Dạng bitmap: mỗi bitmap cho từng kí tự, mỗi bộ bitmap cho từng kích cở (size)
Dạng truetype: lưu trữ bởi tập lệnh postcript
Kí tự (tt.)
Tính chất các dạng font:
Dạng bitmap: dùng cho các ứng dụng đơn giản
Dạng truetype:
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)
Hệ thống thực và tọa độ thực
Hệ thống thực: bao gồm các đối tượng hình học trong toạ độ thực.
Đối tượng hình học:
Biểu diễn bằng các mô hình hình học (geometric model)
Có các hành vi riêng
Toạ độ thực (world coordinate system):
Điểm trong mặt phẳng có tọa độ (x, y)
Đơn vị đo thực tế: mm, m, …
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á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
Phép nhìn (viewing)
Quá trình vẽ lại trên máy tính một phần thế giới thực được nhìn thấy, được xác định bởi:
Cửa sổ (window): phần của thế giới thực cần được vẽ trên máy tính
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 toàn bộ màn hình.
Width
High
Vùng nhìn
Màn hình
Hệ tọa độ thực
Đặc tính của cửa sổ và vùng nhìn
Cửa sổ và vùng nhìn đều là hình chữ nhật.
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
Hiệ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
Khái niệm cửa sổ trong hệ điều hành Windows
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
Tọ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ị
Linh động hơn cho môi trường nhiều người sử dụng
Tóm tắt
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
Một số khái niệm cơ bản
Khô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)
yellow = (255, 255, 0) white = (255, 255, 255)
Không gian màu RGB (tt.)
Đ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
Kiể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)
Thiế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)
Lấy thông tin về điểm ảnh
VB: Point(x, y) RGB values
Pascal: GetPixel(x, y) RGB values
Đị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:
Device 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ữ
Offscreen 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 cực)
Các đối tượng hình học cơ bản
Điểm
Đoạn thẳng
Chuỗi đoạn thẳng (polyline)
Đa giác (polygon)
Kí tự (text)
Đoạn thẳng
Xác định bởi 2 điểm đầu là 2 điểm ảnh (xa , ya) và (xb , yb), với các toạ độ là đều là số nguyên.
Biểu diễn tường minh của đường thẳng:
y = m(x – xa) + ya
Hệ số góc: m = y / x với
y = yb – ya
x = xb – xa
Biể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.
Xét trường hợp: xa < xb và 0 < m < 1
Sinh các điểm ảnh theo phương pháp tăng dần x từ xa đến xb
Quy 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 thuật Bresenham (xem chương 9)
Chuỗi đoạn thẳng (polyline)
Chuỗi các đoạn thẳng nối tiếp nhau.
Lưu trữ chuỗi đoạn thẳng: lưu tập các điểm ảnh (đỉnh - vertex), bằng dãy hay danh sách liên kết.
Vẽ chuỗi đoạn thẳng: vẽ tuần tự các đoạn thẳng nối các đỉnh
Đ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à đuôi).
Phân loại:
Lồi:
Lõm:
Chéo: có ít nhất 1 cặp cạnh cắt nhau
Các bài toán:
Xác định loại (lồi, lõm, chéo)
Vẽ
Tô màu
Các hình 2D thông dụng
Hình chữ nhật (rectangle)
Ellipse
Hình chữ nhật
4 đỉnh, các góc trong là góc vuông, cạnh song song với trục
Lưu trữ: 4 giá trị hay 2 đỉnh chéo (thường là top-left, right-bottom)
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]
Pascal: Rectangle(left, top, right, bottom)
Ellipse
Lưu trữ: tâm và 2 bán kính theo 2 chiều x và y, hoặc hình chữ nhật bao, trục đối xứng của ellipse song song với trục tọa độ
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)
Kí tự (text)
Xác định bởi mã kí tự trên bảng mã và font
Bảng mã:
ASCII: 7 bit – 128 kí tự, 0-40 cho các kí tự điều khiển
ASCII mở rộng: 8 bit – 256 kí tự
Unicode: 2 byte – 256 bit
Hai dạng font:
Dạng bitmap: mỗi bitmap cho từng kí tự, mỗi bộ bitmap cho từng kích cở (size)
Dạng truetype: lưu trữ bởi tập lệnh postcript
Kí tự (tt.)
Tính chất các dạng font:
Dạng bitmap: dùng cho các ứng dụng đơn giản
Dạng truetype:
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)
Hệ thống thực và tọa độ thực
Hệ thống thực: bao gồm các đối tượng hình học trong toạ độ thực.
Đối tượng hình học:
Biểu diễn bằng các mô hình hình học (geometric model)
Có các hành vi riêng
Toạ độ thực (world coordinate system):
Điểm trong mặt phẳng có tọa độ (x, y)
Đơn vị đo thực tế: mm, m, …
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á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
Phép nhìn (viewing)
Quá trình vẽ lại trên máy tính một phần thế giới thực được nhìn thấy, được xác định bởi:
Cửa sổ (window): phần của thế giới thực cần được vẽ trên máy tính
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 toàn bộ màn hình.
Width
High
Vùng nhìn
Màn hình
Hệ tọa độ thực
Đặc tính của cửa sổ và vùng nhìn
Cửa sổ và vùng nhìn đều là hình chữ nhật.
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
Hiệ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
Khái niệm cửa sổ trong hệ điều hành Windows
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
Tọ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ị
Linh động hơn cho môi trường nhiều người sử dụng
Tóm tắt
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
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Việt Vương
Dung lượng: |
Lượt tài: 5
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)