CHƯƠNG 2 : CÁC GIẢI THUẬT SINH THỰC THỂ CƠ SỞ
2. CÁC GIẢI THUẬT XÂY DỰNG THỰC THỂ CƠ SỞ
2.9. Giải thuật sinh ký tự
Trong màn hỡnh text, truy xuất cỏc ký tự trờn màn hỡnh được hỗ trợ bởi phần cứng. Cỏc ký tự được lưu trữ trong bộ nhớ ROM, dưới dạng bitmap hay cỏc ma trận ảnh. Phần cứng sẽ đưa ký tự lờn màn hỡnh tại vớ trớ xỏc định, tớnh toỏn cuốn trang và xuống dũng.
Trong đồ hoạ:
+ Vector: định nghĩa cỏc ký tự theo những đường cong mềm bao ngoài của chỳng, tốn kộm về mặt tớnh toỏn.
Hỡnh 2.12 Ký tự vector
- phức tạp (tớnh toỏn phương trỡnh) - lưu trữ gọn nhẹ
- cỏc phộp biến đổi dựa vào cụng thức biến đổi
- Kớch thước phụ thuộc vào mụi trường (khụng cú kớch thước cố định)
+ Bitmap: định nghĩa mỗi ký tự với 1 font chữ cho trước là 1 ảnh bitmap hỡnh chữ nhật nhỏ.
Hỡnh 2.13 Ký tự bitmap
- Đơn giản trong việc sinh ký tự
(copypixel) - Lưu trữ lớn
- Cỏc phộp biến đổi(I,B,U, scale) đũi hỏi lưu trữ thờm
- Kớch thước khụng đổi
+ bitmap: sử dụng hàm copypixel (copy điểm ảnh) được lưu trữ trong bộ nhớ cố định -
Fontcache, đưa vào bộ nhớ đệm hiển thị. Mỗi 1 ký tự như 1 ma trận 2 chiều của cỏc điểm ảnh - mặt nạ.
Hàm_sinh_ki_tu (mask)
{xmax, ymax, xmin, ymin //cỏc giới hạn của mặt nạ xo, yo//điểm gốc trờn bộ đệm hiển thị
for (i=ymin;i< ymax ;i++) for (j=xmin; j< xmax ; j++) if (mask(i,j) <> 0)
copypixel ((mask(i,j), pixel(xo+j, yo+i)); }
Ký tự fontcache bitmap đơn giản của SRGP lưu trữ cỏc ký tự theo chuỗi liờn tiếp nhau trong bộ nhớ. Nhưng độ rộng cỏc ký tự khỏc nhau, truy nhập cỏc fontcache thụng qua bản ghi về cấu trỳc cho từng kớ tự.
Cấu trỳc font chữ
typedef struct { int leftx; int width;
} Charlocation; //Vị trớ của text struct {
int CacheId;
int Height; // Độ rộng chữ
int CharSpace; // Khoảng cỏch giữa cỏc ký tự Charlocation Table [128]; //bng ch ci
} fontcache;
Xõy dựng theo phương phỏp định nghĩa cỏc ký tự bởi đường cong mềm bao ngoài của
chỳng dễ dàng thay đổi kớch thước của kớ tự cũng như nội suy ra cỏc dạng của kớ tự. Hoàn toàn
độc lập với thiết bị.
+ Tối ưu nhất: lưu trữ font dưới dạng đường bao. Khi cỏc chương trỡnh ứng dụng sử dụng là bitmap tương ứng với chỳng.