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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Suphot Sawattiwong Array ใน C# Suphot Sawattiwong
The InetAddress Class.
C# เบื้องต้น ก่อนการเขียนเกมด้วย XNA
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
โครงสร้างโปรแกรมภาษา C
Component องค์ประกอบของ GUI.
Swing Component Basic Component.
Introduction to Java Graphic 2D
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
Department of Computer Business
LAB # 5 Computer Programming 1 1.
05_3_Constructor.
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ภาควิชาวิทยาการคอมพิวเตอร์
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
ทบทวนเรื่อง GUI - กลุ่มคำสั่ง AWT Set (Abstract Windowing Toolkit) และ
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
การสร้างส่วนติดต่อกับผู้ใช้ (5) การสร้างเมนู
Suphot Sawattiwong Sprite Suphot Sawattiwong
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
อาร์เรย์ หรือแถวลำดับ (Array)
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
แอพเพล็ตเบื้องต้น (Applet)
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
รู้จักและใช้งาน Applet
บทที่ 8 อาร์เรย์.
บทที่ 6 เมธอด.
JAVA PROGRAMMING PART IV.
Handling Exceptions & database
โครงสร้างควบคุมการทำงาน
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
การสร้างงานกราฟิก ในภาษา php
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
วาดภาพสวยด้วย Paint.
คำสั่งควบคุมการ ทำงาน การเขียนโปรแกรมโดยปกติ มีทั้งให้ทำงาน เป็นลำดับ ที่ละคำสั่ง บางครั้งมีการให้เปลี่ยน ลำดับในการทำคำสั่ง เพื่อให้การเขียน โปรแกรมมีประสิทธิภาพสูงสุด.
C language W.lilakiatsakun.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
Lec05 :: การสืบทอด (inheritance)
การวาดวงกลม Arc วงรี pie และ โปรแกรมเกมส์ Pacman
วิชาคอมพิวเตอร์กราฟิก intro_vb_net_06 การสร้างกราฟเส้นตรงด้วย VB.NET
วาดเส้นและรูปทรงต่าง ๆ วาดเส้นและรูปทรงต่าง ๆ
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Java collection framework
Java Programming Java Structure and Datatype,Variable
Low Level GUI อ.วิวัฒน์ ชินนาทศิริกุล.
การจัดวางคอมโพเนนต์กราฟิก
Java Network Programming 1
พื้นฐานการเขียนโปรแกรมด้วย C#
การสืบทอด (inheritance)
TECH30201 Object-Oriented Programming
รู้จักและใช้งาน Applet
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป
การจัดการกับความผิดปกติ
Powerpoint Templates Page 1 Powerpoint Templates Selection Structure โครงสร้างการทำงานแบบทางเลือก.
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
ใบสำเนางานนำเสนอ:

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

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

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); } }

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); } }

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

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

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

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

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

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);

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

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); } }

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); }

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

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

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); } }

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);

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

คำสั่งในการสร้าง 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)

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); } }

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); } }

100, 100 400 200

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

คำสั่งในการสร้าง 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)

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); } }

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); } }

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

คำสั่งในการสร้าง 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)

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); } }

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); } }

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

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

คำสั่งในการสร้าง 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)

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); } }

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); } }

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); } }

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

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.

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.

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.

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

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)

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)

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)

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

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

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); } }

     