Giáo trình Java 2D

Trong phần này, chúng ta sẽ tìm hiểu tổng quan về

một số khả năng của Java cho vẽ hình hai chiều.

1) Graphics Contexts and Graphics Objects

2) Color Control

3) Font Control

4) Drawing Lines, Rectangles and Ovals

5) Drawing Arcs

6) Drawing Polygons and Polylines

7) Java2D API

pdf32 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 4828 | Lượt tải: 3download
Tóm tắt nội dung Giáo trình Java 2D, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 public Color( int r, int g, int b )
 Tạo ra một màu sắc dựa trên màu đỏ, xanh lá cây và màu xanh thành phần thể hiện 
như số nguyên 0-255.
 public Color( float r, float g, float b )
 Tạo ra một màu sắc dựa trên màu đỏ, xanh lá cây và màu xanh thành phần thể hiện là 
các giá trị từ 0,0 đến 1,0.
public int getRed()
Trả về một giá trị giữa 0 và 255 đại diện cho nội dung màu đỏ.
public int getBlue()
public int getGreen()
public Color getColor()
Trả về một đối tượng màu đại diện cho màu sắc hiện tại cho các bối 
cảnh đồ họa.
public void setColor( Color c )
Thiết lập màu hiện hành cho các bản vẽ với bối cảnh đồ họa.
Ví dụ: public void paint( Graphics g ){
super.paint( g );
g.setColor( new Color( 255, 0, 0 ) );
g.filloval( 25, 25, 100, 20 );
g.drawString( "RGB: " + g.getColor(), 130, 40 ); } }
Sử dụng phương pháp hộp chọn màu
Font Control
public final static int PLAIN
Hằng số đại diện cho một font plain.
public final static int BOLD
Đại diện cho một style font chữ đậm.
public final static int ITALIC
Đại diện cho một style font chữ nghiêng.
public Font( String name, int style, int size )
Tạo ra một đối tượng Font với các font chỉ định, kiểuvà kích cỡ.
public int getStyle()
Trả về một giá trị số nguyên cho thấy cách của phông chữ hiện hành.
public int getSize()
Trả về một giá trị số nguyên cho biết kích thước phông chữ hiện hành.
public String getName()
Trả về tên font hiện hành như một chuỗi.
Thao tác trên font
public Font getFont()
Trả về một tham chiếu đối tượng đại diện cho font chữ hiện hành.
public void setFont( Font f )
Thiết lập phông chữ hiện hành gồm các font chữ, kiểuvà kích 
thước xác định bởi các tham chiếu đối tượng Font f.
public int getAscent()
Trả về một giá trị đại diện cho đi lên của một font ở điểm.
public int getDescent()
Trả về một giá trị đại diện cho các hậu duệ của một font ở điểm
public int getLeading()
Trả về một giá trị đại diện cho hàng đầu của một phông chữ trong 
điểm.
public int getHeight()
Trả về một giá trị đại diện cho chiều cao của một phông chữ trong 
điểm.
Class FontMetrics
 Class FontMetrics là phương pháp cho việc thu thập số liệu font gồm height, 
leading, ascent, baseline, descent.
• public FontMetrics getFontMetrics()
 Trả về FontMetrics cho đối tượng Font bản vẽ hiện hành.
Drawing Lines, Rectangles and Ovals
public void drawLine( int x1, int y1, int x2, int y2 )
Vẽ 1 đường giữa các điểm (x1, y1) và điểm (x2, y2).
public void drawRect( int x, int y, int width, int height )
Vẽ hình chữ nhật có chiều rộng và chiều cao quy định. Góc trên 
trái của hình chữ nhật có tọa độ (x, y).
public void fillRect( int x, int y, int width, int height )
Vẽ hình chữ nhật đặc với chiều rộng và chiều cao quy định. . Góc 
trên trái của hình chữ nhật có tọa độ (x, y).
 public void clearRect( int x, int y, int width, int height )
Vẽ hcnđặc trong màu nền hiện hành. Góc trên trái của hình chữ nhật 
có tọa độ (x, y).
 public void drawRoundRect( int x, int y, int width, int height, 
int arcWidth, int arcHeight )
Vẽ hcn có góc tròn trong màu hiện. arcWidth và arcHeight xác định làm 
tròn của các góc
 public void fillRoundRect( int x, int y, int width, int height,
int arcWidth, int arcHeight )
Vẽ hcn có góc tròn cong trong màu sắc hiện tại. arcWidth và arcHeight 
xác định độ tròn của các góc.
public void draw3DRect( int x, int y, int width, int height, 
boolean b )
Vẽ hcn 3 chiều trong màu sắc hiện tại. Góc trên trái của hình chữ 
nhật có tọa độ (x, y). Hcn nổi lên khi b là true và lõm khi b là false.
public void fill3DRect( int x, int y, int width, int height, 
boolean b )
Vẽ hcn đặc 3 chiều trong màu hiện hành. Góc trên trái của hình chữ 
nhật có tọa độ (x, y). Hcn nổi lên khi b là true và lõm khi b là false.
public void draw3DRect( int x, int y, int width, int height, 
boolean b )
Vẽ hcn 3 chiều trong màu sắc hiện tại. Góc trên trái của hình chữ 
nhật có tọa độ (x, y). Hcn nổi lên khi b là true và lõm khi b là false
public void drawOval( int x, int y, int width, int height )
Vẽ hình bầu dục trong màu sắc hiện tại góc trên bên trái của hình chữ 
nhật là ranh giới ở tọa độ (x, y). 
 public void fillOval( int x, int y, int width, int height )
Vẽ hình bầu dục đặctrong màu hiện hành với quy định chiều rộng và 
chiều cao. Góc trên bên trái của hình chữ nhật là ranh giới ở tọa độ (x, 
y). Các chạm hình bầu dục tất cả bốn cạnh của hình chữ nhật ranh 
giới ở trung tâm của mỗi bên.
Vẽ vòng cung
 Một vòng cung được vẽ như là một phần của một 
hình bầu dục. Góc của vòng cung được đo bằng độ. 
Vòng cung quét từ một góc bắt đầu bởi số góc theo quy 
định của vòng cung. Góc vòng cung xác định tổng số độ 
cung quét. 
Vẽ vòng cung (tt)
Vòng cung mà quét ngược chiều kim đồng hồ được 
đo bằng độ dương. Hình bên phải cho thấy một 
vòng cung quét từ số 0 độ đến -110 độ. Vòng cung 
mà quét cùng chiều kim đồng hồ được đo bằng độ 
âm. Khi vẽ một vòng cung, bạn chỉ định một hình 
chữ nhật ranh giới cho một hình bầu dục. Các vòng 
cung sẽ quét dọc theo một phần của hình bầu dục 
này.
Phương thức để vẽ vòng cung 
không tô
 public void drawArc(int x, int y, int width, int height, int 
startAngle, int arcAngle)
Vẽ 1 vòng cung giới hạn bởi đỉnh trên trái 
hình chữ nhật có tọa độ (x,y) với chiều rộng 
và chiều cao đã được người dùng khai báo 
trong cú pháp. Các đoạn vòng cung được vẽ 
bắt đầu từ startAngle và độ quét là 
arcAngle.
Phương thức để vẽ vòng cung có 
tô
 public void fillArc(int x, int y, int width, int height, int 
startAngle, int arcAngle)
Vẽ và tô 1 vòng cung giới hạn bởi đỉnh trên 
trái hình chữ nhật có tọa độ (x,y) với chiều 
rộng và chiều cao đã được người dùng khai 
báo trong cú pháp. Các đoạn vòng cung 
được vẽ bắt đầu từ startAngle và độ quét là 
arcAngle.
Ví dụ
// start at 0 and sweep 360 degrees
 g.setColor( Color.YELLOW );
 g.drawRect( 15, 35, 80, 80 );
 g.setColor( Color.BLACK );
 g.drawArc( 15, 35, 80, 80, 0, 360 );
 // start at 0 and sweep 110 degrees
 g.setColor( Color.YELLOW );
 g.drawRect( 100, 35, 80, 80 );
 g.setColor( Color.BLACK );
 g.drawArc( 100, 35, 80, 80, 0, 110 );
Vẽ Polygons và Polylines
Những đa giác thì đều có dạng bao gồm 
các phân đoạn đường thẳng. Polylines là 
một chuỗi các điểm kết nối.
Phương thức để vẽ đa giác
 public void drawPolygon( int xPoints[], int yPoints[], 
int points )
Vẽ một hình đa giác. Mỗi điểm trên trục x được quy 
định trong mảng xPoints và các điểm trên trục y được 
quy định trong mảng yPoints. Đối số cuối cùng xác định 
số điểm. Phương pháp này rút ra một đa giác khép kín. 
Nếu điểm cuối cùng là khác nhau từ điểm đầu tiên, đa 
giác được đóng lại bằng một đường kết nối các điểm 
cuối đến điểm đầu tiên.
Phương thức để vẽ đa giác (tt)
 public void drawPolyline( int xPoints[], int yPoints[], int 
points )
Vẽ một chuỗi các đường kết nối. Mỗi điểm trên trục x 
được quy định trong mảng xPoints và điểm trên trục y 
được quy định trong mảng yPoints. Đối số cuối cùng 
xác định số điểm. Nếu điểm cuối cùng là khác nhau từ 
điểm đầu tiên, polyline không phải là đóng lại.
Phương thức để vẽ đa giác (tt)
 public void fillPolygon( int xPoints[], int yPoints[], int 
points )
Vẽ một hình đa giác tô. Mỗi điểm trên trục x được quy 
định trong mảng xPoints và các điểm trên trục y được 
quy định trong mảng yPoints. Đối số cuối cùng xác định 
số điểm. Phương pháp này rút ra một đa giác khép kín. 
Nếu điểm cuối cùng là khác nhau từ điểm đầu tiên, đa 
giác được đóng lại bằng một đường kết nối các điểm 
cuối đến điểm đầu tiên.
Phương thức để vẽ đa giác (tt)
 public void drawPolygon( Polygon p )
Vẽ các đa giác đã được quy định.
 public void fillPolygon( Polygon p )
Vẽ các đa giác tô đã được quy định. 
 public Polygon()
Cấu trúc của một đối tượng đa giác mới. Các đa giác 
không chứa bất kỳ điểm nào.
Phương thức để vẽ đa giác (tt)
 public Polygon( int xValues[], int yValues[], int 
numberOfPoints )
Cấu trúc một đối tượng đa giác mới. Các đa giác có 
numberOfPoints bên, với mỗi điểm bao gồm một giá trị 
x và giá trị y.
 public void addPoint( int x, int y )
Thêm 1 điểm gồm x và y vào đa giác.
Ví dụ
super.paint( g ); // call superclass's paint method
 int xValues[] = { 20, 40, 50, 30, 20, 15 };
 int yValues[] = { 50, 50, 60, 80, 80, 60 };
 Polygon polygon1 = new Polygon( xValues, yValues, 6 );
 g.drawPolygon( polygon1 );
Polygon polygon2 = new Polygon();
 polygon2.addPoint( 165, 135 );
polygon2.addPoint( 175, 150 );
 polygon2.addPoint( 270, 200 );
 polygon2.addPoint( 200, 220 );
 polygon2.addPoint( 130, 180 );
 g.fillPolygon( polygon2 );
Java2D API
 Java2D API cung cấp đồ họa cao cấp 2 chiều cho người 
lập trình, người mà yêu cầu các thao tác đồ họa chi tiết 
và phức tạp. API bao gồm tính năng vẽ đường thẳng, 
văn bản, hình ảnh trong gói java.awt, java.awt.image, 
java.awt.color, java.awt.font, 
java.awt.geom,java.awt.print và 
java.awt.image.renderable. 
Java2D API (tt)
 Vẽ với các API Java2D được thực hiện với một thể 
hiện của Graphics2D (gói java.awt), mà là một phân 
lớp đồ họa trừu tượng của lớp. Trong thực tế, thực tế 
đối tượng sử dụng để vẽ trong mỗi phương pháp sơn 
là một ví dụ của một phân lớp của Graphics2D đó là 
thông qua phương pháp vẽ và truy cập thông qua các 
đồ họa siêu lớp. Để truy cập tính năng Graphics2D, 
chúng ta phải bỏ các tham chiếu để vẽ đồ họa thông 
qua vào một tham chiếu Graphics2D như:
Graphics2D g2d = ( Graphics2D ) g;
Ví dụ
super.paint( g ); // call superclass's paint method
 Graphics2D g2d = ( Graphics2D ) g; // cast g to Graphics2D
 // draw 2D ellipse filled with a blue-yellow gradient
 g2d.setPaint( new GradientPaint( 5, 30, Color.BLUE, 35, 100,
 Color.YELLOW, true ) );
 g2d.fill( new Ellipse2D.Double( 5, 30, 65, 100 ) );
 // draw 2D rectangle in red
 g2d.setPaint( Color.RED );
 g2d.setStroke( new BasicStroke( 10.0f ) );
 g2d.draw( new Rectangle2D.Double( 80, 30, 65, 100 ) );
Q & A

File đính kèm:

  • pdfGiáo trình Java 2D.pdf
Tài liệu liên quan