Javaアプレットによる2Dグラフィックサンプル ベジェ曲線を含む図形の描画

Javaグラフィックサンプル(アプレット版):曲線の描画に関する図形描画サンプルです。輪郭線を太くしたり、破線にしたり。図形内のグラデーション、パターン描画等のサンプルを掲載しています。

Home > サンプル集 > アプレットサンプル集 > ベジェ曲線を含む図形の描画


ベジェ曲線を含む図形の描画

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. ベジェ曲線を含む図形の描画 ( BezierSample01.java )  
  2. ベジェ曲線を含む図形の描画(塗りつぶし) ( BezierSample02.java )  
  3. ベジェ曲線を含む図形の描画(太線) ( BezierSample03.java )  
  4. ベジェ曲線を含む図形の描画(太線&塗りつぶし) ( BezierSample04.java )  
  5. ベジェ曲線を含む図形の描画(破線) ( BezierSample05.java )  
  6. ベジェ曲線を含む図形の描画(破線&塗りつぶし) ( BezierSample06.java )  
  7. ベジェ曲線を含む図形の描画(グラデーション) ( BezierSample07.java )  
  8. ベジェ曲線を含む図形の描画(テクスチャーパターン) ( BezierSample08.java )  
  9. ベジェ曲線を含む図形の描画 (回転)( BezierSample09.java )  

ベジェ曲線を含んだ図形を描くには、GeneralPathクラスのcurveToメソッドを使います。

■ベジェ曲線を含む図形の描画

[ サンプルプログラムのソースコード - BezierSample01.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.GeneralPath;
  7. public class BezierSample01 extends JApplet {
  8.   public void paint(Graphics g) {
  9.     Graphics2D g2 = (Graphics2D)g;
  10.     g2.setPaint(Color.BLUE);
  11.     GeneralPath p = new GeneralPath();
  12.     p.moveTo(10, 10);
  13.     p.lineTo(110, 10);
  14.     p.curveTo(70, 35, 70, 60, 110, 110);
  15.     p.lineTo(10, 110);
  16.     p.curveTo(50, 100, 50, 100, 10, 10);
  17.     p.closePath();
  18.     g2.draw(p);
  19.   }
  20. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形 / 角の丸い四角形 / / 楕円 / 直線 / 連続直線 / 多角形 / ベジェ曲線 / 円弧 / 楕円弧 / 弓形 / 扇形


■ベジェ曲線を含む図形の描画(塗りつぶし)

[ サンプルプログラムのソースコード - BezierSample02.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.GeneralPath;
  7. public class BezierSample02 extends JApplet {
  8.   public void paint(Graphics g) {
  9.     Graphics2D g2 = (Graphics2D)g;
  10.     g2.setPaint(Color.ORANGE);
  11.     GeneralPath p = new GeneralPath();
  12.     p.moveTo(10, 10);
  13.     p.lineTo(110, 10);
  14.     p.curveTo(70, 35, 70, 60, 110, 110);
  15.     p.lineTo(10, 110);
  16.     p.curveTo(50, 100, 50, 100, 10, 10);
  17.     p.closePath();
  18.     g2.fill(p);
  19.   }
  20. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(塗りつぶし)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(塗りつぶし) / 角の丸い四角形(塗りつぶし) / 円(塗りつぶし) / 楕円(塗りつぶし) / 多角形(塗りつぶし) / 弓形(塗りつぶし) / 扇形(塗りつぶし)


■ベジェ曲線を含む図形の描画(太線)

[ サンプルプログラムのソースコード - BezierSample03.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.BasicStroke;
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.geom.GeneralPath;
  8. public class BezierSample03 extends JApplet {
  9.   public void paint(Graphics g) {
  10.     Graphics2D g2 = (Graphics2D)g;
  11.     g2.setPaint(Color.BLUE);
  12.     g2.setStroke(new BasicStroke(5.0f));
  13.     GeneralPath p = new GeneralPath();
  14.     p.moveTo(10, 10);
  15.     p.lineTo(110, 10);
  16.     p.curveTo(70, 35, 70, 60, 110, 110);
  17.     p.lineTo(10, 110);
  18.     p.curveTo(50, 100, 50, 100, 10, 10);
  19.     p.closePath();
  20.     g2.draw(p);
  21.   }
  22. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(太線)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(太線) / 角の丸い四角形(太線) / 円(太線) / 楕円(太線) / 直線(太線) / 連続直線(太線) / 多角形(太線) / ベジェ曲線(太線) / 円弧(太線) / 楕円弧(太線) / 弓形(太線) / 扇形(太線)


■ベジェ曲線を含む図形の描画(太線&塗りつぶし)

[ サンプルプログラムのソースコード - BezierSample04.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.BasicStroke;
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.geom.GeneralPath;
  8. public class BezierSample04 extends JApplet {
  9.   public void paint(Graphics g) {
  10.     Graphics2D g2 = (Graphics2D)g;
  11.     g2.setStroke(new BasicStroke(5.0f));
  12.     GeneralPath p = new GeneralPath();
  13.     p.moveTo(10, 10);
  14.     p.lineTo(110, 10);
  15.     p.curveTo(70, 35, 70, 60, 110, 110);
  16.     p.lineTo(10, 110);
  17.     p.curveTo(50, 100, 50, 100, 10, 10);
  18.     p.closePath();
  19.     g2.setPaint(Color.BLUE);
  20.     g2.fill(p);
  21.     g2.setPaint(Color.RED);
  22.     g2.draw(p);
  23.   }
  24. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(太線&塗りつぶし)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(太線&塗りつぶし) / 角の丸い四角形(太線&塗りつぶし) / 円(太線&塗りつぶし) / 楕円(太線&塗りつぶし) / 多角形(太線&塗りつぶし) / 弓形(太線&塗りつぶし) / 扇形(太線&塗りつぶし)


■ベジェ曲線を含む図形の描画(破線)

[ サンプルプログラムのソースコード - BezierSample05.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.BasicStroke;
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.geom.GeneralPath;
  8. public class BezierSample05 extends JApplet {
  9.   public void paint(Graphics g) {
  10.     Graphics2D g2 = (Graphics2D)g;
  11.     g2.setPaint(Color.BLUE);
  12.       float[] dash = { 20.0f, 5.0f,3.0f,5.0f };
  13.       g2.setStroke(new BasicStroke(
  14.           2.0f,
  15.           BasicStroke.JOIN_ROUND,
  16.           BasicStroke.CAP_BUTT,
  17.           1.0f,
  18.           dash,
  19.           0.0f));
  20.     GeneralPath p = new GeneralPath();
  21.     p.moveTo(10, 10);
  22.     p.lineTo(110, 10);
  23.     p.curveTo(70, 35, 70, 60, 110, 110);
  24.     p.lineTo(10, 110);
  25.     p.curveTo(50, 100, 50, 100, 10, 10);
  26.     p.closePath();
  27.     g2.draw(p);
  28.   }
  29. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(破線)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(破線) / 角の丸い四角形(破線) / 円(破線) / 楕円(破線) / 直線(破線) / 連続直線(破線) / 多角形(破線) / ベジェ曲線(破線) / 円弧(破線) / 楕円弧(破線) / 弓形(破線) / 扇形(破線)


■ベジェ曲線を含む図形の描画(破線&塗りつぶし)

[ サンプルプログラムのソースコード - BezierSample06.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.BasicStroke;
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.geom.GeneralPath;
  8. public class BezierSample06 extends JApplet {
  9.   public void paint(Graphics g) {
  10.     Graphics2D g2 = (Graphics2D)g;
  11.       float[] dash = { 20.0f, 5.0f,3.0f,5.0f };
  12.       g2.setStroke(new BasicStroke(
  13.           2.0f,
  14.           BasicStroke.JOIN_ROUND,
  15.           BasicStroke.CAP_BUTT,
  16.           1.0f,
  17.           dash,
  18.           0.0f));
  19.     GeneralPath p = new GeneralPath();
  20.     p.moveTo(10, 10);
  21.     p.lineTo(110, 10);
  22.     p.curveTo(70, 35, 70, 60, 110, 110);
  23.     p.lineTo(10, 110);
  24.     p.curveTo(50, 100, 50, 100, 10, 10);
  25.     p.closePath();
  26.     g2.setPaint(Color.GREEN);
  27.     g2.fill(p);
  28.     g2.setPaint(Color.RED);
  29.     g2.draw(p);
  30.   }
  31. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(破線&塗りつぶし)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(破線&塗りつぶし) / 角の丸い四角形(破線&塗りつぶし) / 円(破線&塗りつぶし) / 楕円(破線&塗りつぶし) / 多角形(破線&塗りつぶし) / 弓形(破線&塗りつぶし) / 扇形(破線&塗りつぶし)


■ベジェ曲線を含む図形の描画(グラデーション)

[ サンプルプログラムのソースコード - BezierSample07.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.Color;
  4. import java.awt.GradientPaint;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.geom.GeneralPath;
  8. public class BezierSample07 extends JApplet {
  9.   public void paint(Graphics g){
  10.     Graphics2D g2 = (Graphics2D)g;
  11.     GradientPaint gp = new GradientPaint(10,10,Color.GREEN,100,10,Color.BLUE,true);
  12.     g2.setPaint(gp);
  13.     GeneralPath p = new GeneralPath();
  14.     p.moveTo(10, 10);
  15.     p.lineTo(110, 10);
  16.     p.curveTo(70, 35, 70, 60, 110, 110);
  17.     p.lineTo(10, 110);
  18.     p.curveTo(50, 100, 50, 100, 10, 10);
  19.     p.closePath();
  20.     g2.fill(p);
  21.   }
  22. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(グラデーション)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(グラデーション) / 角の丸い四角形(グラデーション) / 円(グラデーション) / 楕円(グラデーション) / 多角形(グラデーション) / 弓形(グラデーション) / 扇形(グラデーション)


■ベジェ曲線を含む図形の描画(テクスチャーパターン)

[ サンプルプログラムのソースコード - BezierSample08.java - ]
  1. package sample.applet;
  2. import javax.swing.JApplet;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.Rectangle;
  7. import java.awt.TexturePaint;
  8. import java.awt.geom.GeneralPath;
  9. import java.awt.image.BufferedImage;
  10. public class BezierSample08 extends JApplet {
  11.   public void paint(Graphics g){
  12.     Graphics2D g2 = (Graphics2D)g;
  13.     BufferedImage bi = new BufferedImage(10,10,BufferedImage.TYPE_INT_RGB);
  14.     Graphics2D bg = bi.createGraphics();
  15.     Rectangle r = new Rectangle(0,0,10,10);
  16.     bg.setColor(Color.ORANGE);
  17.     bg.fillRect(0, 0, 10, 10);
  18.     bg.setColor(Color.BLUE);
  19.     bg.drawLine(0, 0, 10, 0);
  20.     bg.drawLine(0, 0, 0, 5);
  21.     bg.drawLine(0, 5, 10, 5);
  22.     bg.drawLine(5, 5, 5, 10);
  23.     TexturePaint tp = new TexturePaint(bi,r);
  24.     g2.setPaint(tp);
  25.     GeneralPath p = new GeneralPath();
  26.     p.moveTo(10, 10);
  27.     p.lineTo(110, 10);
  28.     p.curveTo(70, 35, 70, 60, 110, 110);
  29.     p.lineTo(10, 110);
  30.     p.curveTo(50, 100, 50, 100, 10, 10);
  31.     p.closePath();
  32.     g2.fill(p);
  33.   }
  34. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(テクスチャーパターン)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(テクスチャーパターン) / 角の丸い四角形(テクスチャーパターン) / 円(テクスチャーパターン) / 楕円(テクスチャーパターン) / 多角形(テクスチャーパターン) / 弓形(テクスチャーパターン) / 扇形(テクスチャーパターン) / いろいろなテクスチャーパターン


■ベジェ曲線を含む図形の描画(回転)

[ サンプルプログラムのソースコード - BezierSample09.java - ]
  1. import javax.swing.JApplet;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Rectangle;
  6. import java.awt.TexturePaint;
  7. import java.awt.geom.AffineTransform;
  8. import java.awt.geom.GeneralPath;
  9. import java.awt.image.BufferedImage;
  10. public class BezierSample09 extends JApplet {
  11.   private static final long serialVersionUID = 1L;
  12.   public void paint(Graphics g){
  13.     Graphics2D g2 = (Graphics2D)g;
  14.     BufferedImage bi = new BufferedImage(10,10,BufferedImage.TYPE_INT_RGB);
  15.     Graphics2D bg = bi.createGraphics();
  16.     Rectangle r = new Rectangle(0,0,10,10);
  17.     bg.setColor(Color.ORANGE);
  18.     bg.fillRect(0, 0, 10, 10);
  19.     bg.setColor(Color.BLUE);
  20.     bg.drawLine(0, 0, 10, 0);
  21.     bg.drawLine(0, 0, 0, 5);
  22.     bg.drawLine(0, 5, 10, 5);
  23.     bg.drawLine(5, 5, 5, 10);
  24.     TexturePaint tp = new TexturePaint(bi,r);
  25.     g2.setPaint(tp);
  26.     AffineTransform at = new AffineTransform();
  27.     at.setToRotation(Math.toRadians(45), 70,70);
  28.     g2.setTransform(at);
  29.     GeneralPath p = new GeneralPath();
  30.     p.moveTo(20, 20);
  31.     p.lineTo(120, 20);
  32.     p.curveTo(80, 45, 80, 70, 120, 120);
  33.     p.lineTo(20, 120);
  34.     p.curveTo(60, 110, 60, 110, 20, 20);
  35.     p.closePath();
  36.     g2.fill(p);
  37.   }
  38. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(回転)のSwing版サンプル
アプレット版サンプルの他の図形描画
四角形(回転) / 角の丸い四角形(回転) / 円(回転) / 楕円(回転) / 多角形(回転) / アニメーションサンプル(図形の回転)




最終更新日:2019/02/13

2015-03-01からの訪問者数
  1616 人