งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

ให้ทำการเขียนโปรแกรมเพื่อ แสดงรูปภาพ ดังนี้     

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "ให้ทำการเขียนโปรแกรมเพื่อ แสดงรูปภาพ ดังนี้     "— ใบสำเนางานนำเสนอ:

1 ให้ทำการเขียนโปรแกรมเพื่อ แสดงรูปภาพ ดังนี้     

2

3 การวาดรูปหลายเหลี่ยม (polygon) Polygon() Polygon(int[ ] xpoints, int[ ] ypoints, int[ ] npoints) int[ ] xpoints คือ Array ที่กำหนดค่า X int[ ] ypoints คือ Array ที่กำหนดค่า Y int npoints คือ จำนวนจุด

4 import java.awt.*; import java.awt.geom.*; class Drawing extends javax.swing.JFrame { public void paint(Graphics g) { Polygon poly = new Polygon(); poly.addPoint(100, 100); poly.addPoint(175, 50); poly.addPoint(250, 100); poly.addPoint(250, 200); poly.addPoint(175, 250); poly.addPoint(100, 200); g.drawPolygon(poly); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 400); d.setBackground(Color.white); d.setVisible(true); } }

5 import java.awt.*; import java.awt.geom.*; class Drawing extends javax.swing.JFrame { public void paint(Graphics g) { Polygon poly = new Polygon(); int[] x = {75, 150, 225, 225, 150, 75}; int[] y = {100, 50, 100, 200, 250, 200}; g.drawPolygon(x, y, x.length); } public static void main(String args[]) { Drawing d = new Drawing(); d.setDefaultCloseOperation(EXIT_ON_CLOSE); d.setSize(400, 400); d.setBackground(Color.white); d.setVisible(true); } }

6 Java 2D Geom Package การสร้างกราฟิกด้วยชุดของ java.awt.geom

7 Character of Geom เป็นชุดการสร้าง 2D ที่มีความหลากหลายของวัตถุ ที่สร้างมากกว่า java.awt.* เช่น การสร้างเส้นโค้ง (arc) หรือรูปหลายเหลี่ยม (polygon) เป็นต้น โดย ที่การเขียนคำสั่งนั้นยังคงรูปแบบการเขียนที่ คล้ายกันซึ่งมีลำดับการทำงานแบบ sequential ที่ เรียงลำดับคำสั่งจากบนลงล่างเสมอ ก่อนการเขียนคำสั่งต้องมีการ import คลาส ด้วย คำสั่ง import java.awt.geom.*

8 Program Structure import java.awt.geom.*; import java.awt.*; class ชื่อคลาส extends Frame{ Constructor( ){ configuration of Frame } paint( ){ Drawing Shape } }

9 2D Shape Area() A เป็นการกำหนดพื้นที่การวาดรูป CubicCurve2D() Dimension2D() Ellipse2D() A เป็นการวาดรูปวงรี Line2D() A เป็นการวาดเส้นตรง Point2D() A เป็นการกำหนดจุด QuadCurve2D() Rectangle2D() A เป็นการวาดรูปสี่เหลี่ยม RoundRectangle2D() A เป็นการวาดรูปสี่เหลี่ยมมุม โค้ง

10

11

12 Line2D() เป็นคำสั่งวาดเส้นตรงโดยมีรูปแบบคำสั่งดังนี้ Line2D.Float(X1,Y1,X2,Y2); Line2D.Double(X1,Y1,X2,Y2); X1,Y1 ตำแหน่งเริ่ม X2,Y2 ตำแหน่งสิ้นสุด

13 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Line2D lin = new Line2D.Float(100, 100, 250, 260); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 400); d.setBackground(Color.white); d.setVisible(true); }

14 QuadCurve2D() เป็นการวาดรูปเส้นโค้งที่มีกำหนดจุดต้น จุดที่ ดึงเส้น และจุดปลายของเส้น สามารถสร้าง โดยคำสั่ง QuadCurve2D.Float() QuadCurve2D.Double() QuadCurve2D.Float(x1,y1,ctrlx,ctrly,x2,y2) QuadCurve2D.Double(x1,y1,ctrlx,ctrly,x2,y2)

15

16 import java.awt.*; import java.awt.geom.*; class Drawing extends javax.swing.JFrame { QuadCurve2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new QuadCurve2D.Float(); lin.setCurve(100, 100, 200, 400,300,100); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setDefaultCloseOperation(EXIT_ON_CLOSE); d.setSize(400, 400); d.setBackground(Color.white); d.setVisible(true); } }

17 import java.awt.*; import java.awt.geom.*; class Drawing extends javax.swing.JFrame { QuadCurve2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new QuadCurve2D.Float(100, 100, 200, 400,300,100); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setDefaultCloseOperation(EXIT_ON_CLOSE); d.setSize(400, 400); d.setBackground(Color.white); d.setVisible(true); }

18 CubicCurve2D() เป็นการวาดรูปเส้นโค้งที่มีกำหนดจุดต้น จุดที่ ดึงเส้น 2 จุด และจุดปลายของเส้น

19 CubicCurve2D.Float() CubicCurve2D.Double() CubicCurve2D.Float(x1,y1,ctrlx1,ctrly1, ctrlx2,ctrly2,x2,y2) CubicCurve2D.Double(x1,y1,ctrlx,ctrly, ctrlx2,ctrly2,x2,y2) x1,y1 x2,y2 ctrlx1,ctrly1 ctrlx2,ctrly2

20 import java.awt.*; import java.awt.geom.*; class Drawing extends javax.swing.JFrame { CubicCurve2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new CubicCurve2D.Float(); lin.setCurve(100, 100, 200, 400,300,50,600,100); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setDefaultCloseOperation(EXIT_ON_CLOSE); d.setSize(700, 400); d.setBackground(Color.white); d.setVisible(true); } }

21 import java.awt.*; import java.awt.geom.*; class Drawing extends javax.swing.JFrame { CubicCurve2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new CubicCurve2D.Float(100, 100, 200, 400,300,50,600,100); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setDefaultCloseOperation(EXIT_ON_CLOSE); d.setSize(700, 400); d.setBackground(Color.white); d.setVisible(true); }

22 Ellipse2D() เป็นการวาดรูปวงรี โดยจะระบุจุดเริ่ม x,y ความกว้าง และความสูงของวงรี

23 คำสั่งในการสร้าง Ellipse2D.Double () Ellipse2D.Float () Ellipse2D.Double (double X, double Y, double Width, double Height) Ellipse2D.Float (float X, float Y, float Width, float Height) คำสั่ง Ellipse2D.Double () และ Ellipse2D.Float () จะมีการ กำหนดการวาดรูปด้วยคำสั่ง setFrame(X, Y, Width, Height )

24 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { Ellipse2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new Ellipse2D.Float(100, 100, 200, 400); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

25 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { Ellipse2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new Ellipse2D.Float(100, 100, 200, 400); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

26 100,

27 Rectangle2D() เป็นการวาดรูปสี่เหลี่ยม โดยจะระบุจุดเริ่ม x,y ความกว้าง และความสูงของสี่เหลี่ยม

28 คำสั่งในการสร้าง Rectangle2D.Double () Rectangle2D.Float () Rectangle2D.Double (double X, double Y, double Width, double Height) Rectangle2D.Float (float X, float Y, float Width, float Height) คำสั่ง Rectangle2D.Double () และ Rectangle2D.Float () จะมี การกำหนดการวาดรูปด้วยคำสั่ง setFrame(X, Y, Width, Height )

29 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { Rectangle2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new Rectangle2D.Float(100, 100, 200, 400); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

30 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { Rectangle2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new Rectangle2D.Float(100, 100, 200, 400); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

31 Rectangle2D() เป็นการวาดรูปสี่เหลี่ยมขอบมน โดยจะระบุ จุดเริ่ม x,y ความกว้าง และความสูงของ สี่เหลี่ยม ความกว้างของมุม และความสูงของ มุม

32 คำสั่งในการสร้าง Rectangle2D.Double () Rectangle2D.Float () Rectangle2D.Double (double X, double Y, double Width, double Height) Rectangle2D.Float (float X, float Y, float Width, float Height) คำสั่ง Rectangle2D.Double () และ Rectangle2D.Float () จะมี การกำหนดการวาดรูปด้วยคำสั่ง setFrame(X, Y, Width, Height )

33 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { RoundRectangle2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new RoundRectangle2D.Float(100, 100, 200, 400,20,20); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

34 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { RoundRectangle2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new RoundRectangle2D.Float(100, 100, 200, 400, 20, 20); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

35 Arc2D() เป็นการวาดรูปสี่เหลี่ยมเส้นโค้งโดยระบุจุด เริ่ม x,y ความกว้าง และความสูง มุมเริ่มต้น ในแกนนอน มุมในแกนแกนตั้ง และชนิดของ เส้นโค้ง

36 ชนิดของเส้นโค้ง 0 คือ เส้นโค้งจากจุดเริ่ม - สิ้นสุด หรือ Arc2D.OPEN 1 คือ เส้นโค้งจากจุดเริ่ม - สิ้นสุดและมีเส้น ระหว่างจุดทั้งสอง หรือ Arc2D.CHORD 2 คือ เส้นโค้งจากจุดเริ่ม - สิ้นสุดและมีเส้น ระหว่างจุดทั้งสองกับจุดตัดของเส้นมุมทั้ง สอง หรือ Arc2D.PIE 0 1 2

37 คำสั่งในการสร้าง Arc2D.Double () Arc2D.Float () Arc2D.Double (X, Y, Width, Height, Theta, Delta, Type) Arc2D.Float (X, Y, Width, Height, Theta, Delta, Type) คำสั่ง Arc2D.Double () และ Arc2D.Float () จะมีการ กำหนดการวาดรูปด้วยคำสั่ง setFrame(X, Y, Width, Height, Theta, Delta, Type)

38 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { Arc2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new Arc2D.Float(10,50,150,150,0,60,0); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(200, 300); d.setBackground(Color.white); d.setVisible(true); } }

39 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { RoundRectangle2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new RoundRectangle2D.Float(100, 100, 200, 400,20,20); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

40 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { RoundRectangle2D lin; public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; lin = new RoundRectangle2D.Float(100, 100, 200, 400, 20, 20); g2.draw(lin); } public static void main(String args[]) { Drawing d = new Drawing(); d.setSize(400, 600); d.setBackground(Color.white); d.setVisible(true); } }

41 Area() รูปแบบคำสั่ง Area () เป็นการสร้างพื้นที่เปล่าๆ โดยไม่มีการ กำหนดรูปร่างของพื้นที่ว่ามีรูปร่างแบบใด Area(Shape s) เป็นการสร้างพื้นที่ขึ้นเราโดย กำหนดให้มีรูปร่างเช่น triangle, rectangular เป็นต้น

42 Operation with Area Add() Adds the shape of the specified Area to the shape of this Area. The resulting shape of this Area will include the union of both shapes, or all areas that were contained in either this or the specified Area. Subtract() Subtracts the shape of the specified Area from the shape of this Area. The resulting shape of this Area will include areas that were contained only in this Area and not in the specified Area.

43 Operation with Area Intersect() Sets the shape of this Area to the intersection of its current shape and the shape of the specified Area. The resulting shape of this Area will include only areas that were contained in both this Area and also in the specified Area.

44 Operation with Area exclusiveOr() Sets the shape of this Area to be the combined area of its current shape and the shape of the specified Area, minus their intersection. The resulting shape of this Area will include only areas that were contained in either this Area or in the specified Area, but not in both.

45 add(Area rhs) // Example: Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]); Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]); a1.add(a2); a1(before) + a2 = a1(after)

46 subtract(Area rhs) // Example: Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]); Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]); a1.subtract(a2); a1(before) - a2 = a1(after)

47 intersect(Area rhs) // Example: Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]); Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]); a1.intersect(a2); a1(before) intersect a2 = a1(after)

48 exclusiveOr(Area rhs) // Example: Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]); Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]); a1. exclusiveOr (a2); a1(before) exclusiveOr a2 = a1(after)

49

50 การเทียบเคียงกับ Set Operation Add() คือ การ Union (  ) Subtract() คือ การ – เช่น A-B คือ อยู่ใน A แต่ ไม่อยู่ใน B Intersect() คือ การ Intersect (  ) exclusiveOr() คือ A’  B’ หรือ (A  B)-(A  B) media/2D/samples/suite/Clipping/Areas.java

51 AB A-B A∩B U A’UB’A’UB’

52 import java.awt.*; import java.awt.geom.*; class Drawing extends Frame { public static void main(String[] args) { Drawing f = new Drawing(); f.setTitle(" Drawing v1.0"); f.setSize(300, 150); f.setVisible(true); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setColor(Color.green); Ellipse2D e = new Ellipse2D.Double(10,50,70,70); Area leaf1 = new Area(e); Ellipse2D f = new Ellipse2D.Double(50,50,70,70); Area leaf2 = new Area(f); leaf2 = new Area(f); leaf1.exclusiveOr(leaf2); g2.fill(leaf1); } }

53      


ดาวน์โหลด ppt ให้ทำการเขียนโปรแกรมเพื่อ แสดงรูปภาพ ดังนี้     

งานนำเสนอที่คล้ายกัน


Ads by Google