首先我们需要创建一个心形图案,然后按照心形图案的位置和长度,对所创建的字符串进行截断并在所需的位置上输出,最终能呈现在屏幕上满满的爱心。
实现代码:
1 package ddd; 2 3 4 5 import java.awt.*; 6 7 8 9 import javax.swing.JFrame; 10 11 12 13 public class Cardioid extends JFrame { 14 15 16 17 //获取屏幕大小 18 19 private static final int WIDTH = 500; 20 21 private static final int HEIGHT = 500; 22 23 24 25 private static int WINDOW_WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width; 26 27 private static int WINDOW_HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height; 28 29 30 31 public Cardioid(){ 32 33 super("I love you");//设置窗口标题 34 35 this.setBackground(Color.BLACK); 36 37 this.setLocation((WINDOW_WIDTH-WIDTH)/2,(WINDOW_HEIGHT-HEIGHT)/2);//设置窗口位置 38 39 this.setSize(WIDTH, HEIGHT);//设置窗口大小 40 41 this.setLayout(getLayout());//设置窗口布局 42 43 this.setVisible(true);//设置窗口可见 44 45 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//设置窗口默认关闭方式 46 47 } 48 49 50 51 public void paint(Graphics g){ 52 53 double x,y,r;//横纵坐标以及半径 54 55 Image image = this.createImage(WIDTH, HEIGHT); 56 57 Graphics pic = image.getGraphics(); 58 59 for (int i = -2; i < 90; i++) { 60 61 for (int j = -2; j < 90; j++) { 62 63 r=Math.PI/45+Math.PI/45*i*(1-Math.sin(Math.PI/45*j))*18; 64 65 x=r*Math.cos(Math.PI/45*j)*Math.sin(Math.PI/45*i)+WIDTH/2; 66 67 y=-r*Math.sin(Math.PI/45*j)+HEIGHT/3; 68 69 pic.setColor(Color.MAGENTA); 70 71 pic.fillOval((int)x, (int)y, 2, 2); 72 73 } 74 75 g.drawImage(image,0,0,this);//生成图片 76 77 } 78 79 } 80 81 82 83 84 85 public static void main(String[] args) { 86 87 new Cardioid(); 88 89 } 90 91 }
实现效果:
以上就是java实现表白神器的详细内容。(拼多多培训)