心形图java代码
【java源代碼】
import java.awt.Color;?
import java.awt.Graphics;?
import java.awt.Image;?
import java.awt.Toolkit;?
import javax.swing.JFrame;?
?
@SuppressWarnings("serial")?
public class Demo extends JFrame implements Runnable {?
?
????// 定義加載窗口大小?
????public static final int GAME_WIDTH = 500;?
????public static final int GAME_HEIGHT = 500;?
????// 獲取屏幕窗口大小?
????public static final int WIDTH = Toolkit.getDefaultToolkit()?
????????????.getScreenSize().width;?
????public static final int HEIGHT = Toolkit.getDefaultToolkit()?
????????????.getScreenSize().height;?
?
????public Demo() {?
????????// 設置窗口標題?
????????this.setTitle("心形曲線");?
????????// 設置窗口初始位置?
????????this.setLocation((WIDTH - GAME_WIDTH) / 2, (HEIGHT - GAME_HEIGHT) / 2);?
????????// 設置窗口大小?
????????this.setSize(GAME_WIDTH, GAME_HEIGHT);?
????????// 設置背景色?
????????this.setBackground(Color.BLACK);?
????????// 設置窗口關閉方式?
????????this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?
????????// 設置窗口顯示?
????????this.setVisible(true);?
????}?
?
????@Override?
????public void paint(Graphics g) {?
?????????
????????double x, y, r;?
????????Image OffScreen = createImage(GAME_WIDTH, GAME_HEIGHT);?
????????Graphics drawOffScreen = OffScreen.getGraphics();?
?
????????for (int i = 0; i < 90; i++) {?
????????????for (int j = 0; j < 90; j++) {?
????????????????r = Math.PI / 45 * i * (1 - Math.sin(Math.PI / 45 * j)) * 18;?
????????????????x = r * Math.cos(Math.PI / 45 * j) * Math.sin(Math.PI / 45 * i)?
????????????????????????+ GAME_WIDTH / 2;?
????????????????y = -r * Math.sin(Math.PI / 45 * j) + GAME_HEIGHT / 4;?
?????????????????
????????????????//設置畫筆顏色?
????????????????drawOffScreen.setColor(Color.PINK);?
????????????????// 繪制橢圓?
????????????????drawOffScreen.fillOval((int) x, (int) y, 2, 2);?
????????????}?
????????????// 生成圖片?
????????????g.drawImage(OffScreen, 0, 0, this);?
????????}?
????}?
?
????public static void main(String[] args) {?
????????Demo demo = new Demo();?
????????Thread t = new Thread(demo);?
????????t.start();?
????}?
?
????@Override?
????public void run() {?
????????while (true) {?
????????????try {?
????????????????Thread.sleep(2000);?
????????????????this.repaint();?
????????????} catch (InterruptedException e) {?
????????????????e.printStackTrace();?
????????????}?
????????}?
?
????}?
}?
【運行結果?】
總結
- 上一篇: 用python转换PDF/Word/Ex
- 下一篇: 我愿当一个屁民