Chương 7- Lập trình đồ họa - Pdf 16

1
Chương 7- Lập trình đồ họa
2
Mục tiêu
Đến cuối chương bạn có thể

Hiểu biết về lớp Font, lớp FontMetrics

Hiểu biết về lớp Color.

Biết cách vẽ hình ảnh trên GUI. với đối
tượng thuộc lớp Graphics, Graphics2D
3
Nội dung
7.1- Ôn tập
7.2- Các vấn đề cơ bản về vẽ.
7.3- Điều khiển mầu sắc.
7.4- Điều khiển Font.
7.5- Đồ họa với lớp Graphics.
7.6- Paint mode.
7.7- Đồ họa với lớp Graphics2D.
7.8- File ảnh.
7.9- Tóm tắt.
7.10- Chương trình vẽ bằng chuột.
4
7.1- Ôn tập

Event : Tín hiệu nhận biết có sự thay đổi
trạng thái.

Nguồn phát sinh event: Hệ thống, user,

Điều khiển mầu sắc.

Chọn Font

Thao tác vẽ : Vẽ chuỗi, vẽ hình, tô mầu.

Chế độ đồ họa Graphic mode.

Xuất file ảnh.
7
7.3- Điều khiển mầu sắc

Tại 1 thời điểm. có 1 mầu nền (background color, mặc
định là white) hiện hành và 1 mầu vẽ hiện hành mặc
định là black.

Thao tác với mầu nền và mầu vẽ của Frame:
setBackground(aColor); getBackground();
setForeground(aColor); getForeground();

Ấn định mầu vẽ g.setColor (aColor); // g:graphic object

Chỉ định mầu bằng các hằng mầu sắc: Khai báo sẵn
trong lớp Color  Color.black , … Các hằng khác :
white, gray , lightGray, darkGray, red, pink, orange,
yellow , green, magenta, cyan , blue.
8
Điều khiển mầu sắc (tt)

1 mầu tự chọn được ấn định bằng bộ 3 (Red,Green,Blue)

Serif, SansSerif, Monospaced,
Dialog, và DialogInput

Label, TextField, chỉ sử dụng
Logical Font
10
Font

Có thể lấy tập font trong máy bằng 1 đối tượng thuộc
lớp GraphicEnvironment.

Lấy fonts hệ thống thông qua đối tượng
GraphicsEnvironment

Thí dụ: Lấy fonts hệ thống đưa vào choice cFonts
GraphicsEnvironment ge;
ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
Font f[]= ge.getAllFonts();
for (int i=0;i<f.length;++i) cFonts.add(f[i].getFontName());
SystemFonts.java
11
Font (tt)

Lớp FontMetric cho ta kích
thước font:
String getName(): tên font
int getHeight() : chiều cao
int getAscend()
int getDescent()
int getHeight()

lớp Graphics (tt)

Muốn vẽ : Lấy đối tượng đồ họa kết hợp của Frame
(Panel) bằng hành vi getGraphics() hoặc hiện thực 1
trong các phương thức sau:
(1) Phương thức paint(Graphics g) được gọi ngay khi nạp
class và được gọi bởi phương thức update( )
(2) Phương thức repaint() được gọi khi cần vẽ lại.
(3) Phương thức update(Graphics g) được gọi tự động bởi
phương thức repaint(). Sẽ xó các đối tượng đồ họa cũ
rồi gọi lại paint(g)

Muốn vẽ thêm mà không xóa các hình ảnh cũ, cần
override phưong thức update như sau:
public void update (Graphics g) { paint (g); }
Slide sau cho thấy thí dụ về cách viết chương trình đồ họa
15
7.5.1- Vẽ ký tự với font và mầu hiện hành

void drawString(String str, int x, int y)
vẽ chuỗi bắt đầu tại toạ độ (x,y)

void drawChars(char[] data, int offset, int
length, int x, int y)
vẽ length ký tự từ vị trí offset trong mảng ký tự
bắt đầu tại toạ độ (x,y)

void drawBytes(byte[] data, int offset, int
length, int x, int y)
Vẽ ký tự có mã ký tự trong mảng data, từ vị trí

height)
abstract void fillPolygon (int[] xPoints, int[] yPoints,
int nPoints)
void fillPolygon (Polygon p)
abstract void fillRect (int left, int top, int width, int
height)
abstract void fillRoundRect (int left, int top, int width,
int height, int arcWidth, int arcHeight)
18
Minh họa
Vẽ trên Frame – Draw2.java
Vẽ + Tô mầu- Draw3.java
Vẽ biểu đồ khối, biểu đồ quạt- BieuDo.java
Vẽ, Tô mầu đa giác - PolygonDemo.java
19
7.6- Paint mode

2 chế độ đồ họa:

Overwrite mode: Nội dung mới xóa nội dung cũ.

XOR mode : Nội dung mới không xóa nội dung cũ,
cả 2 nội dung cùng khả kiến

g.setXORMode(Color.cyan);

Thí dụ: Xem Draw4.java trong tài liệu minh họa.
Xor-mode- Draw4.java
20
7.7- Đồ họa với Graphics2D

23
Đồ họa với Graphics2D (tt)

Lớp AffineTransform mô tả cho các phép biến hình
phẳng
Graph2D1.java
24
7.8- Thao tác với file ảnh

Ảnh đơn giản là các hình vẽ.

Ảnh phức tạp là các file ảnh

Để xuất ảnh từ file, cần dùng đối tượng Toolkit
(đối tượng truy xuất một số file ảnh) và Image

Toolkit có thể truy xuất file .GIF , .JPG, .JPE G

Chỉ định file ảnh cục bộ bằng tên file.

Chỉ định file trên mạng bằng địa chỉ URL.
25
Thao tác với file ảnh (tt)

Sử dụng Toolkit để truy xuất 1 file ảnh cục bộ:
String FileName= “img1.jpg";
Image img;
img= Toolkit.getDefaultToolkit().getImage (FileName);

Sử dụng Toolkit để truy xuất 1 file ảnh từ URL:


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status