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

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

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

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


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

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

2

3 การวาดรูปหลายเหลี่ยม (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.awt.geom
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 ctrlx1,ctrly1 x2,y2 x1,y1 ctrlx2,ctrly2 CubicCurve2D.Float()
CubicCurve2D.Double() CubicCurve2D.Float(x1,y1,ctrlx1,ctrly1, ctrlx2,ctrly2,x2,y2) CubicCurve2D.Double(x1,y1,ctrlx,ctrly, ctrlx2,ctrly2,x2,y2) ctrlx1,ctrly1 x2,y2 x1,y1 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, 100 400 200

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 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 a1(before) + a2 = a1(after)
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) a = a1(after)

46 a1(before) - a2 = a1(after)
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 a1(before) intersect a2 = a1(after)
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)

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

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