1. 程式人生 > >Java 一個簡單的繪製類似花瓣的程式

Java 一個簡單的繪製類似花瓣的程式

 繪製橢圓說一下:

ellipse = new Ellipse2D.Float(10, 0, 50, 15);// 建立橢圓物件

(10,0) 為橢圓外接矩形左上角座標,50 為外接矩形的長,15為寬

package com.wk

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class DrawFlowerFrame extends JFrame {
    DrawFlowerPanel drawFlowerPanel = new DrawFlowerPanel(); // 建立面板類的例項
    public static void main(String args[]) { // 主方法
        DrawFlowerFrame frame = new DrawFlowerFrame(); // 建立窗體類的例項
        frame.setVisible(true); // 顯示窗體
    }
    
    public DrawFlowerFrame() {
        super(); // 呼叫超類的構造方法
        setTitle("繪製花瓣"); // 窗體標題
        setBounds(100, 100, 338, 230); // 窗體的顯示位置和大小
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗體關閉方式
        add(drawFlowerPanel); // 將面板類的例項新增到窗體容器中
    }
    
    class DrawFlowerPanel extends JPanel { // 建立內部面板類
        public void paint(Graphics g) {     // 重寫paint()方法
            Graphics2D g2 = (Graphics2D)g; // 獲得Graphics2D物件
            g2.translate(drawFlowerPanel.getWidth() / 2, drawFlowerPanel.getHeight() / 2);// 平移座標軸
            // 繪製綠色花瓣
            Ellipse2D.Float ellipse = new Ellipse2D.Float(30, 0, 70, 20);// 建立橢圓物件
            Color color = new Color(0,255,0);//建立顏色物件
            g2.setColor(color);//指定顏色
            g2.fill(ellipse);// 繪製橢圓
            int i=0;
            while (i<8){
                g2.rotate(30);// 旋轉畫布
                g2.fill(ellipse);// 繪製橢圓
                i++;
            }
            // 繪製紅色花瓣
            ellipse = new Ellipse2D.Float(20, 0, 60, 15);// 建立橢圓物件
            color = new Color(255,0,0);//建立顏色物件
            g2.setColor(color);//指定顏色
            g2.fill(ellipse);// 繪製橢圓
            i=0;
            while (i<15){
                g2.rotate(75);// 旋轉畫布
                g2.fill(ellipse);// 繪製橢圓
                i++;
            }
            // 繪製黃色花瓣
            ellipse = new Ellipse2D.Float(10, 0, 50, 15);// 建立橢圓物件
            color = new Color(255,255,0);//建立顏色物件
            g2.setColor(color);//指定顏色
            g2.fill(ellipse);// 繪製橢圓
            i=0;
            while (i<8){
                g2.rotate(30);// 旋轉畫布
                g2.fill(ellipse);// 繪製橢圓
                i++;
            }
            // 繪製紅色中心點
            color = new Color(255, 0, 0);// 建立顏色物件
            g2.setColor(color);// 指定顏色
            ellipse = new Ellipse2D.Float(-10, -10, 20, 20);// 建立橢圓物件
            g2.fill(ellipse);// 繪製橢圓
        }
    }
}