做情诗网站,目前做外贸的网站哪个比较好,源码下载39源码网,北京建设工程网有位小伙伴说#xff0c;看到一个帖子#xff0c;一个计算机博士接亲时#xff0c;要求现场写代码#xff0c;5分钟做出一个爱心。我们就看看如何用java设计出心形的代码。
我找了一下#xff0c;发现方法竟然很多#xff0c;我们就来见识一下#xff0c;最后我们看一下…有位小伙伴说看到一个帖子一个计算机博士接亲时要求现场写代码5分钟做出一个爱心。我们就看看如何用java设计出心形的代码。
我找了一下发现方法竟然很多我们就来见识一下最后我们看一下如何用简单的java代码实现一个心。 一.❤️的数学背景
据说心形线起源于法国的笛卡尔他曾认识一位瑞典小公国的公主克里斯汀并成为了公主的数学老师并渐渐产生爱慕之心但是被国王阻止了想象一段狗血的剧情。笛卡尔被迫流放回法国对公主日夜思念便写信但是又怕被人看到于是就想到了用数学公式画心形线来表白心迹。
笛卡尔的心形线是这样的 在坐标系中画出来是这样的 想要个更苗条的是不 如果想要更好看的就需要matlab等工具进行渲染了
二.java 实现❤️
首先来一个7行就能搞定的 public static void heart1(){float x,y,a;for(y1.3f;y-1.1f;y-0.06f){ //这里的参数皆可以调条件就是看着顺眼for(x-1.2f;x1.2f;x0.025f){ax*xy*y-1;System.out.print(a*a*a-x*x*y*y*y0.0f? :$);}System.out.println();}}
画出来的结果是这样的 再来一个心中有无数爱的
public static void heart2(){double x,y,a;char s[]new char[]{I, ,l,o,v,e, ,y,o,u,!};int index0;for(y1.3f;y-1.1f;y-0.06f){index0;for(x-1.1f;x1.1f;x0.025f){double resultx*xpow((5.0*y/4.0-sqrt(abs(x))),2);if(result1){System.out.print((s[index]));index(index1)%11;}else{System.out.print( );}}System.out.println( );}}这个是这样的 怎么样是不是程序员的专属浪漫
三.一个双心的例子
有个小伙伴给贡献了一段代码效果是这样的 代码如下
import javax.swing.*;
import java.awt.*;
import static java.lang.Math.*;
public class DemoTest extends JFrame {private static final long serialVersionUID -1284128891908775645L;
// 定义加载窗口大小
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 DemoTest() {
// 设置窗口标题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);}
Overridepublic 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) {DemoTest demo new DemoTest();demo.setVisible(true);}
}