生活随笔
收集整理的這篇文章主要介紹了
利用JAVA画一颗小心心
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先,這顆心是數學家畫的,不是我。原理很復雜,大致原理就是迭代。
畫這顆心的代碼已經給出來了
public void draw(Graphics g){ for(int i=0;i<=180;i++){for(int j=0;j<=180;j++){double r=Math.PI/45*i*(1-Math.sin(Math.PI/45*j))*20;double x=r*Math.cos(Math.PI/45*j)*Math.sin(Math.PI/45*i)+300;double y=-r*Math.sin(Math.PI/45*j)+200; Color c=Color.getHSBColor(i*j/8100.0f, 0.9999f,0.9999f); g.setColor(c); g.drawOval((int)x, (int)y, 1,1); try{ Thread.sleep(1); }catch(Exception e){} } } }
但是,我卡在了怎么調用這個函數這里。
我本來是準備在主函數里寫一個new一個heart對象,然后想C語言一樣用這個對象調用draw方法。
然而這個方法需要傳入Graphics g參數。
當我new一個Graphics對象時,編譯器報錯說,Graphics不能實例化。
um…然后我就直接Graphics g;
然后傳參之后,就報錯“空指針錯誤”。涼。。。。。
最后,再問了同學之后,發現自己的代碼書寫習慣十分不好,或者說是還沒有熟悉規則。
1、首先是對Graphics的了解不夠。這是一個畫筆,它是有paint()屬性的。也就是說,它可以理解為是一個畫筆。畫筆一定是需要有畫布才能作畫的。因此必須有JFrame()對象才能在上面作畫,這就是它的畫布。
2、然后是對編程的耦合度理解并不高。老是習慣把所有的代碼全部寫進主函數里,導致錯誤百出,嚶!
接下來是在同學的手把手指導下寫出來的代碼。很漂亮遼。
package heart;import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;import javax.swing.JFrame;public class heart extends JFrame{/*** */private static final long serialVersionUID = -7128362663435137794L;public void draw(Graphics g){ for(int i=0;i<=180;i++){for(int j=0;j<=180;j++){double r=Math.PI/45*i*(1-Math.sin(Math.PI/45*j))*20;double x=r*Math.cos(Math.PI/45*j)*Math.sin(Math.PI/45*i)+300;double y=-r*Math.sin(Math.PI/45*j)+200; Color c=Color.getHSBColor(i*j/8100.0f, 0.9999f,0.9999f); g.setColor(c); g.drawOval((int)x, (int)y, 1,1); try{ Thread.sleep(1); }catch(Exception e){} } } }public void showUI(){this.setSize(new Dimension(1200,1200));this.setVisible(true);Graphics g = this.getGraphics();draw(g);}public static void main(String[] args) {heart h = new heart();h.showUI();}}
下面是我的小心心
總結
以上是生活随笔為你收集整理的利用JAVA画一颗小心心的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。