今天閒來無事,教大家一個哄妹子的小case。我們需要創建一個心形圖案,按照心形圖案的位置和長度,對所創建的字符串進行截斷並在所需的位置上輸出,最終能呈現在屏幕上滿滿的愛心。廢話不多說,直接上源碼看效果~
package ddd; import java.awt.*; import javax.swing.JFrame; public class Cardioid extends JFrame { //獲取屏幕大小private static final int WIDTH = 500; private static final int HEIGHT = 500; private static int WINDOW_WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width; private static int WINDOW_HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height; public Cardioid(){ super("I love you");//設置窗口標題this.setBackground(Color.BLACK); this.setLocation((WINDOW_WIDTH-WIDTH)/2,(WINDOW_HEIGHT-HEIGHT)/2);//設置窗口位置this.setSize(WIDTH, HEIGHT);//設置窗口大小this.setLayout(getLayout());//設置窗口佈局this.setVisible(true);//設置窗口可見this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//設置窗口默認關閉方式} public void paint(Graphics g){ double x,y,r;//橫縱坐標以及半徑Image image = this.createImage(WIDTH, HEIGHT); Graphics pic = image.getGraphics(); for (int i = -2; i < 90; i++) { for (int j = -2; j < 90; j++) { r=Math.PI/45+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)+WIDTH/2; y=-r*Math.sin(Math.PI/45*j)+HEIGHT/3; pic.setColor(Color.MAGENTA); pic.fillOval((int)x, (int)y, 2, 2); } g.drawImage(image,0,0,this);//生成圖片} } public static void main(String[] args) { new Cardioid(); } }實現效果如下所示:
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。