zoukankan      html  css  js  c++  java
  • Java基础之在窗口中绘图——绘制圆弧和椭圆(Sketcher 3 drawing arcs and ellipses)

    控制台程序。

     1 import javax.swing.JComponent;
     2 import java.util.*;
     3 import java.awt.*;
     4 import java.awt.geom.*;
     5 
     6 @SuppressWarnings("serial")
     7 public class SketcherView extends JComponent implements Observer {
     8   public SketcherView(Sketcher theApp) {
     9     this.theApp = theApp;
    10   }
    11 
    12   // Method called by Observable object when it changes
    13   public void update(Observable o, Object rectangle) {
    14     // Code to respond to changes in the model...
    15   }
    16 
    17   // Method to draw on the view
    18   @Override
    19   public void paint(Graphics g) {
    20     // Temporary code...
    21     Graphics2D g2D = (Graphics2D)g;                                    // Get a Java 2D device context
    22     Point2D.Double position = new Point2D.Double(50,10);               // Initial position
    23     double width = 150;                                                // Width of ellipse
    24     double height = 100;                                               // Height of ellipse
    25     double start = 30;                                                 // Start angle for arc
    26     double extent = 120;                                               // Extent of arc
    27     double diameter = 40;                                              // Diameter of circle
    28 
    29     // Define open arc as an upper segment of an ellipse
    30     Arc2D.Double top = new Arc2D.Double(position.x, position.y,
    31                                      width, height,
    32                                      start, extent,
    33                                      Arc2D.OPEN);
    34 
    35     // Define open arc as lower segment of ellipse shifted up relative to 1st
    36     Arc2D.Double bottom = new Arc2D.Double(
    37                                      position.x, position.y - height + diameter,
    38                                      width, height,
    39                                      start + 180, extent,
    40                                      Arc2D.OPEN);
    41 
    42     // Create a circle centered between the two arcs
    43     Ellipse2D.Double circle1 = new Ellipse2D.Double(
    44                                      position.x + width/2 - diameter/2,position.y,
    45                                      diameter, diameter);
    46 
    47     // Create a second circle concentric with the first and half the diameter
    48     Ellipse2D.Double circle2 = new Ellipse2D.Double(
    49                    position.x + width/2 - diameter/4, position.y + diameter/4,
    50                    diameter/2, diameter/2);
    51 
    52     // Draw all the shapes
    53     g2D.setPaint(Color.BLACK);                                         // Draw in black
    54     g2D.draw(top);
    55     g2D.draw(bottom);
    56 
    57     g2D.setPaint(Color.BLUE);                                          // Draw in blue
    58     g2D.draw(circle1);
    59     g2D.draw(circle2);
    60     g2D.drawString("Arcs and ellipses", 80, 100);                      // Draw some text
    61 
    62   }
    63 
    64   private Sketcher theApp;                                             // The application object
    65 }

    其他部分与上一例同。

  • 相关阅读:
    Ubuntu速配指南之热门设置
    最高境地的Linux桌面
    菜鸟在Linux零碎中安置Oracle 11G
    Ubuntu 7.10疾速设置指南
    excel的单元格怎么实现下拉菜单?
    Delphi 与 DirectX 之 DelphiX(16): DXImageList1.Items.Find();
    Delphi 与 DirectX 之 DelphiX(19): 绘图表面(TDirectDrawSurface)如何加载图片
    Delphi 与 DirectX 之 DelphiX(18): TDXDraw 中描绘图片的命令
    Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight
    Delphi 与 DirectX 之 DelphiX(23): TDirectDrawSurface.Blur;
  • 原文地址:https://www.cnblogs.com/mannixiang/p/3488364.html
Copyright © 2011-2022 走看看