đồ họa trong java

      30

Khái quát: khi mong muốn vẽ 1 hình gì bọn họ dùng đến đối tượng người sử dụng Graphics,đối tượng người sử dụng Graphics nhỏng cây rửa pkhông còn lên Frame, Canvas hayApplet.




Bạn đang xem: đồ họa trong java

*

Học viện công nghệ bưu chính viễn thông Tháng 3/2010C08CNTT2 §å häa AWT trong java http://www.mediafire.com/?hz7rf8jbvvnlnht Nội dung: Lớp Graphics Lớp Graphics 2D   Vẽ hình học tập Vẽ hình học tập   Vẽ chữ Nét vẽ   Vẽ ảnh Chế độ vẽ   Chế độ vẽ Tô loang   Lớp Color Vẽ ảnh trong trong cả   Vùng giảm Biến đổi tọa độ trong Java2 chiều   Các lớp tiện ích không giống  Lớp Graphics Khái quát: Lúc ước ao vẽ 1 hình gì bọn họ cần sử dụng mang đến đối tượng người sử dụng Graphics,  đối tượng người dùng Graphics nlỗi cây rửa pkhông còn lên Frame, Canvas xuất xắc Applet. Muốn vẽ hình thường chúng ta phải cài đặt phương thức:  public void paint(Graphics g) Phương thức: repaint() dùng để làm vẽ lại hình hình ảnh (thực chất là  repaint() hotline đến cách tiến hành update() sau đó Call cho thủ tục paint()) Nếu chỉ muốn vẽ lại 1 phần ta sử dụng phương thức:  repaint ( int x, int y,i nt width, int height ) Lớp Graphics1.Vẽ hình học: Gồm: Vẽ hình chữ nhật  Vẽ Elip, vòng tròn  Vẽ đa giác  Vẽ đường thẳng  Vẽ hình chữ nhật tròn góc  Vẽ cung tròn Lớp Graphics1.Vẽ hình học: X Giới thiệu hệ tọa độ: (0,0) (800,0) Vẽ hình chữ nhật: Màn hình drawRect(int x, int y,int width,int height) fillRect(int x, int y,int width,int height) (0,600) (800,600) clearRect(int x, int y,int width,int height) Y draw fill (Width ) (x,y) (Height) VD: public void paint (Graphics g) g. drawRect(20, 30,50,50); Lớp Graphics1.Vẽ hình học: Vẽ đường thẳng: (x1,y1) drawLine(int x1, int y1, int x2, int y2) Vẽ vòng tròn, elip: (x2,y2) drawOval (int x, int y, int width, int height) fillOval (int x, int y, int width, int height) + Đường tròn: width= height draw fill (Width) (x,y)(Height) Lớp Graphics 1.Vẽ hình học: Vẽ hình chữ nhật tròn góc:  drawRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight) fillRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight) (arcHeight)(arcWidth) Lớp Graphics 1.Vẽ hình học: Vẽ đa giác:  drawPolygon ( int<> x, int<> y, int numberPoint ) drawPolygon (Polygon p) Lớp polygon: ­ Cung cấp khả năng tạo Polygon yển chuyển hơn. Đa giác được xem như 1 đối tượng. ­ Có thể thêm đỉnh nhờ phương thức addPoint. Polygon pg=new Polygon(); pg.addPoint(2,50); g.drawPolygon(pg); Phương thức contains(int x,int y) để kiểm tra 1 điểm có nắm trong đa giác ko.­­Phương thức getBounds() cho biết phạm vi buổi tối đa ma những đỉnh chiếm giữ lại (trả về kiểu Rectangle)Lớp Graphics1.Vẽ hình học: Vẽ cung tròn: drawArc( int x, int y, int width, int height, int startAngle, int arcAngle); fillArc( int x, int y, int width, int height, int startAngle, int arcAngle); (width) (x,y) Fill Arc Draw Arc arcAngle startAngle (height)Lớp Graphics2.Vẽ chữ: Vẽ mảng ký tự : drawChars ( char<> Data, int Offset, int Length, int x, int y)Data: Mảng ký tự cần vẽ.Offset: Ký tự bắt đầu.Length: Số ký tự cần vẽ. char<> A= ‘H’ , ‘e’ , ‘l’ , "l‘ , ‘o’ , ‘!’ ; g.drawChars (A , 0 , A.length , 50 , 50); Cách khác:• drawBytes( byte<> Data, int Offphối, int Length, int x, int y)Data: Mảng byte (biểu diễn mã ASCII).VD:byte<> B= 65, 66, 67, 68, 69 ; // “ A , B , C , D , E ” g.drawChars (B , 0 , A.length , 50 , 50);Lớp Graphics2.Vẽ chữ: Vẽ chuỗi ký tự : drawString (String s, int x, int y)VD: g.drawString (“Hello!” , 50 , 50); Thay đổi Font chữ: setFont(Font f); Lớp Font:• ­ Khởi tạo Font: Font( String fontname, int style, int fontsize)VD: Font f= new Font(“ .VnArial ”, Font.BOLD + Font.ITALIC , 20 ) ­ Một số phương thức của lớp Font: getName, getStyle, getSize, isBold, isItalic, isPlain… ­ Lấy tất cả font trong hệ thống: Dùng phương thức getFontList của đối tượng Toolkit.VD: String<> FL=getToolkit(). getFontList();Lớp Graphics3.Chế độ vẽ: Đối tượng Graphics có 2 chế độ vẽ: paint, XOR Chế độ paint: Là chế độ mặc định ta vẫn thấy. Ta dùng phương thức: setPaintMode(); của đối tượng Graphics để gọi chế  độ này. Chế độ XOR: setXORMode(Color c); VD:Font f= new Font(".VnArial",Font.BOLD+Font.ITALIC,40);g.setFont(f);g.setColor(Màu sắc.blue);g.drawString("Hello ! ",50,60); (0,0,255) (blue)g.setXORMode(Color.green);g.setColor(Color.black); (blue) XOR (255,0,255) = (0,255,255)g.fillRect(50,40,90,90); (black) XOR (green) = (255,0,255) (0,0,0) (0,255,0) Lớp Graphics 4.Vẽ ảnh: Lớp Graphics cung cấp phương thức drawImage() để vẽ ảnh đơn giản: drawImage(Image img, int x, int y, ImageObserver Ob) drawImage(Image img, int x, int y, Color bgcolor, ImageObserver Ob) drawImage(Image img, int x, int y, int width, int height, ImageObserver Ob) drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver Ob)+ bgColor: Màu nền đối với ảnh trong suốt:+ VD: Image im=getToolkit().getImage("Untitled­1.png");g.drawImage(lặng,50,50,lặng.getHeight(this),yên ổn.getWidth(this), Màu sắc.darkGray,this);+ ImageObserver Ob: Đối tượng Chịu đựng trách nát nhiệm kiểm soát xem hình họa đã sắn sàng để vẽ hay chưa. thường thì là this.(this là thân Applet hay Frame) Lớp Graphics 5.Lớp Color: 1 điều ảnh trên màn hình các được kết hợp bởi 3 màu cơ bản: R,G,B ­ (Red, Green,  Blue). R,G,B đều có giá trị từ 0­255 (1byte) Tổng cộng là 3 byte. Khởi tạo 1 màu:  + Theo giá trị R,G,B: Color cl=new Color ( int Red, int Green, int Blue ) VD: Màu xanh lá cây: Color gr=new Color ( 0, 255, 0); + Theo giá trị % (có giá trị từ 0­1): Color cl=new Color ( float Red, float Green, float Blue ) VD: Green: Color cl=new Color (0.0, 1.0, 0.0 ) + Theo giá trị hexa (mã màu): VD: Color a=new Color(0xffaf00); ff=15*161+15*160=255 0xaf 0x00 0xffAlpha R G B Lớp Graphics 5.Lớp Color (tt): + Khởi tạo màu theo màu cơ bản của lớp Color: Color a=new Color(Color. black); Hoặc: Color a=Color. black; ­ Một số color cơ bạn dạng : blachồng, blue, cyan, darkGray, gray, green, lightGray, magetan, orange, pink, red, white, yellow. Một số phương thức của lớp Color: int getRed: Trả về giá trị R (int).

Xem thêm: 200+ Sky Map Bầu Trời Đẹp - Free Download Thư Viện Hdri Sky Cho Sketchup



Xem thêm: #10 Cách Chụp Chân Dung Đẹp, 5 Kỹ Thuật Chụp Ảnh Chân Dung Để Chụp Cả Ngày

 int getGreen: Trả về giá trị G (int).  int getBlue: Trả về giá trị B (int).  int getAlpha: Trả về giá trị Alpha (int). Lớp Graphics6.Vùng cắt (Clipping): Đối tượng Graphics cho phép ta cài đặt 1 vùng cắt bằng phương thức clipRect  sau: clipRect(int x, int y, int width, int height)VD: public void paint(Graphics g) g.drawRect(40,50,80,90); g.clipRect(40,50,80,90); g.setColor(Màu sắc.blue); g.fillOval(30,40,90,90); Lớp Graphics 2 chiều Khái quát: Graphics2D chứa 1 tập phong phú các hàm và phương thức vẽ  đồ họa hơn hẳn lớp Graphics. Chẳng hạn như: Graphics2D có thể chấp nhận được vẻ ngoài chiều rộng lớn bút vẽ, dạng hình nét vẽ, những cách làm xử lý hình, vẽ và tô màu loang, cho phép sử dụng Font chữ của máy cục cỗ, hỗ trợ hệ tọa độ rượu cồn, và 1 số thao tác biến đổi toạ độ. Tuy nhiên để duy trì tính tương thích với Java 1.1, kiểu knhị báo đối số của phương thức paintComponent vẫn sẽ là Graphics công khai là đồ thị. Vì vậy bạn đề nghị ép hình dáng đối số của phương thức paintComponent thành Graphics2D trước khi sử dụng nó: public void paint(Graphics g) Graphics2D g2=(Graphics2D)g; Lớp Graphics 2 chiều Các tính năng mới của Graphics2D:  Đa dạng trong màu tô và mẫu tô: tô loang (Gradient), tô bởi mẫu ảnh (pattern), tô màu ảnh trong suốt (Transparent).  Sử dụng font đặc thù theo từng hệ điều hành.  Thay đổi được độ dày của nét bút vẽ. Các nét vẽ có thể sử dụng chủng loại, cho phép xử lý các nét vẽ gấp khúc theo nhiều cách.  Các phép biến đổi tọa độ.  Hình vẽ (Shape) có thể là 1 đối tượng tự vẽ. Lớp Graphics 2 chiều 1.Các dạng hình học trong Java2D Các lớp đối tượng hình học của Java2D (trong gói java.awt.geom):  Line2 chiều.Double //Đường trực tiếp Arc2 chiều.Double //Cung tròn   Line2 chiều.Float Arc2 chiều.Float   Polygon //Đa giác Area //Vùng   QuadCurve2D.Double //Cung góc tứ CubicCurve2 chiều.Double //Khối   QuadCurve2D.Float CubicCurve2D.Float   Rectangle2D.Double //Hình chữ nhật Ellipse2D.Double //Hình tròn, elip   Rectangle2D.Float Ellipse2 chiều.Float   RoundRectangle2D.Double //Hình CN GenrralPath //Vẽ cung   RoundRectangle2D.Float Góc tròn  Lớp Graphics 2 chiều 1.Các dạng hình học trong Java2D (tt)Line2 chiều.Double:Khởi tạo: setLine( int x1, int y1, int x2, int y2 )Arc2 chiều.Double :Khởi tạo: setArc( x, y, w, h, angStart, angNum, closure)Ellipse2 chiều.Double: Khởi tạo: setFrame( x, y, w, h);VD: public void paint(Graphics g) Graphics2D g2=(Graphics2D)g; // Ep kieu cho doi tuong Graphics Line2 chiều.Double a=new Line2 chiều.Double(); a.setLine(100,150,150,150); // Khoi tao Line Arc2 chiều.Double b=new Arc2D.Double(); b.setArc(50,50,90,90,đôi mươi,90,2); // Khoi tao cung tron Ellipse2 chiều.Double c=new Ellipse2 chiều.Double(); c.setFrame(trăng tròn,trăng tròn,80,80); // Khoi tao Elip g2.setColor(Color.orange); // Doi mau g2.fill(b); // Ve cung tron g2.draw(a); // Ve Line g2.draw(c); //Xem thu vung cát g2.clip(c); // Cat bang hinh c g2.setColor(màu sắc.magenta);// Doi mau g2.fillRect(10,50,50,50); // Ve hinh công nhân  

Chuyên mục: Tin Tức