Java by API/java.awt.geom/GeneralPath

Материал из Java эксперт
Перейти к: навигация, поиск

GeneralPath: closePath()

   <source lang="java">
 

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; import javax.swing.JComponent; import javax.swing.JFrame; class MyCanvas extends JComponent {

 public void paint(Graphics g) {
   Graphics2D g2D = (Graphics2D) g;
   Point2D.Float point = new Point2D.Float(100, 100);                     // store start point
   GeneralPath p = new GeneralPath(GeneralPath.WIND_NON_ZERO);
   p.moveTo(point.x, point.y);
   p.lineTo(point.x + 20.0f, point.y - 5.0f);           // Line from start to A
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x + 5.0f, point.y - 20.0f);           // Line from A to B
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x + 5.0f, point.y + 20.0f);           // Line from B to C
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x + 20.0f, point.y + 5.0f);           // Line from C to D
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x - 20.0f, point.y + 5.0f);           // Line from D to E
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x - 5.0f, point.y + 20.0f);           // Line from E to F
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x - 5.0f, point.y - 20.0f);           // Line from F to g
   p.closePath();                                       // Line from G to start
   g2D.draw(p);
 }

} public class Main {

 public static void main(String[] a) {
   JFrame window = new JFrame();
   window.setBounds(30, 30, 300, 300);
   window.getContentPane().add(new MyCanvas());
   window.setVisible(true);
 }

}


 </source>
   
  
 
  



GeneralPath: curveTo(float x1, float y1, float x2, float y2, float x3, float y3)

   <source lang="java">
 

import java.awt.geom.GeneralPath; public class Main {

 public static void main(String[] args) {
   GeneralPath shape = new GeneralPath();
   shape.moveTo(1, 1);
   shape.lineTo(2, 2);
   shape.quadTo(3, 3, 4, 4);
   shape.curveTo(5, 5, 6, 6, 7, 7);
   shape.closePath();
 }

}


 </source>
   
  
 
  



GeneralPath: lineTo(float x, float y)

   <source lang="java">

import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.GeneralPath; import javax.swing.JComponent; import javax.swing.JFrame; public class MainClass{

 public static void main(String[] args) {
   JFrame jf = new JFrame("Demo");
   Container cp = jf.getContentPane();
   MyCanvas tl = new MyCanvas();
   cp.add(tl);
   jf.setSize(300, 200);
   jf.setVisible(true);
 }

} class MyCanvas extends JComponent {

 Shape shape;
 public MyCanvas() {
   shape = create();
 }
 protected Shape create() {
   GeneralPath path = new GeneralPath();
   path.moveTo(50, 30);
   path.lineTo(30, 200);
   return path;
 }
 public void paint(Graphics g) {
   Graphics2D g2 = (Graphics2D) g;
   g2.setPaint(Color.black);
   g2.draw(shape);
 }

}


 </source>
   
  
 
  



GeneralPath: moveTo(float x, float y)

   <source lang="java">

import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.GeneralPath; import javax.swing.JComponent; import javax.swing.JFrame; public class MainClass{

 public static void main(String[] args) {
   JFrame jf = new JFrame("Demo");
   Container cp = jf.getContentPane();
   MyCanvas tl = new MyCanvas();
   cp.add(tl);
   jf.setSize(300, 200);
   jf.setVisible(true);
 }

} class MyCanvas extends JComponent {

 Shape shape;
 public MyCanvas() {
   shape = create();
 }
 protected Shape create() {
   GeneralPath path = new GeneralPath();
   path.moveTo(50, 30);
   path.lineTo(30, 200);
   return path;
 }
 public void paint(Graphics g) {
   Graphics2D g2 = (Graphics2D) g;
   g2.setPaint(Color.black);
   g2.draw(shape);
 }

}


 </source>
   
  
 
  



GeneralPath: quadTo(float x1, float y1, float x2, float y2)

   <source lang="java">
 

import java.awt.geom.GeneralPath; public class Main {

 public static void main(String[] args) {
   GeneralPath shape = new GeneralPath();
   shape.moveTo(1, 1);
   shape.lineTo(2, 2);
   shape.quadTo(3, 3, 4, 4);
   shape.curveTo(5, 5, 6, 6, 7, 7);
   shape.closePath();
 }

}


 </source>
   
  
 
  



GeneralPath.WIND_NON_ZERO

   <source lang="java">
 

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; import javax.swing.JComponent; import javax.swing.JFrame; class MyCanvas extends JComponent {

 public void paint(Graphics g) {
   Graphics2D g2D = (Graphics2D) g;
   Point2D.Float point = new Point2D.Float(100, 100);                     // store start point
   GeneralPath p = new GeneralPath(GeneralPath.WIND_NON_ZERO);
   p.moveTo(point.x, point.y);
   p.lineTo(point.x + 20.0f, point.y - 5.0f);           // Line from start to A
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x + 5.0f, point.y - 20.0f);           // Line from A to B
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x + 5.0f, point.y + 20.0f);           // Line from B to C
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x + 20.0f, point.y + 5.0f);           // Line from C to D
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x - 20.0f, point.y + 5.0f);           // Line from D to E
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x - 5.0f, point.y + 20.0f);           // Line from E to F
   point = (Point2D.Float)p.getCurrentPoint();
   p.lineTo(point.x - 5.0f, point.y - 20.0f);           // Line from F to g
   p.closePath();                                       // Line from G to start
   g2D.draw(p);
 }

} public class Main {

 public static void main(String[] a) {
   JFrame window = new JFrame();
   window.setBounds(30, 30, 300, 300);
   window.getContentPane().add(new MyCanvas());
   window.setVisible(true);
 }

}


 </source>