【JAVA】爱心代码--java特供(可直接复制,亲测有效)

news2024/9/20 22:32:35

在这里插入图片描述


个人主页:【😊个人主页】


文章目录

  • 前言
  • 爱心的数学原理
  • 爱心代码
  • 基本版本
  • 带二种


前言

回看过去我发现我的第一篇博客竟然是一篇关于C语言爱心代码的博客(真是个奇怪的开始),不过这么长时间过去了,我的编程语言也不再局限于C语言,今天我来介绍一些java版本的爱心代码。
在这里插入图片描述


爱心的数学原理

据说,心形线起源于法国的笛卡尔,他曾认识一位瑞典小公国的公主克里斯汀,并成为了公主的数学老师,并渐渐产生爱慕之心,但是被国王阻止了(想象一段狗血的剧情)。笛卡尔被迫流放回法国,对公主日夜思念便写信,但是又怕被人看到,于是就想到了用数学公式画心形线来表白心迹。

在这里插入图片描述

还有一种更加更广为流传的:

在这里插入图片描述

在坐标系中画出来是这样的:

在这里插入图片描述

如果你想要个更加更苗条的也不是不可以:
在这里插入图片描述

实心的是
在这里插入图片描述

爱心代码

基本版本

这个Java程序使用Swing图形创建了一个简单的爱心形状。该程序扩展了JPanel类以创建一个自定义面板,该面板覆盖paintComponent()方法来绘制爱心形状。
paintComponent()方法首先将图形对象的颜色设置为红色。然后使用getWidth()和getHeight()方法计算面板的中心点。然后,它为表示心脏顶部的多边形创建两个x和y坐标阵列。然后调用fillPolygon()方法来绘制多边形。
接下来,它设置代表心脏底部的圆的半径,并计算直径。fillArc()方法被调用两次,以绘制构成心脏底部的圆的两半。
最后,main方法创建JFrame类的一个实例,将自定义面板添加到框架中,并设置框架的大小、位置和可见性。当程序运行时,它会在窗口的中心显示一个红色的爱心。

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class LoveHeart extends JPanel {
    public LoveHeart() {
        setPreferredSize(new Dimension(400, 400));
        setBackground(Color.WHITE);
    }

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        g.setColor(Color.RED);

        int x = getWidth() / 2;
        int y = getHeight() / 2;

        int[] xPoints = {x - 100, x + 100, x};
        int[] yPoints = {y - 80, y - 80, y + 70};
        g.fillPolygon(xPoints, yPoints, 3);

        int r = 50;
        int d = r * 2;
        g.fillArc(x - d / 2, y - r, d, d, 0, -180);
        g.fillArc(x - d / 2, y - r, d, d, -180, -180);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Love Heart");
        frame.add(new LoveHeart());
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

带二种

该程序创建一个JPanel,它使用Java Graphics API绘制心脏。心形是使用圆弧和多边形的组合创建的。心脏的大小和位置由JPanel的大小决定。该程序还使用抗锯齿使心脏的边缘更平滑。心脏显示在JFrame中。

import java.awt.*;
import javax.swing.*;

public class Heart extends JPanel {

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        int width = getWidth();
        int height = getHeight();

        int centerX = width / 2;
        int centerY = height / 2;
        int size = Math.min(width, height) * 3 / 5;

        g2d.translate(centerX, centerY);
        g2d.scale(size / 100.0, size / 100.0);

        g2d.setStroke(new BasicStroke(3));

        g2d.setColor(Color.RED);
        g2d.fillArc(-25, -50, 50, 50, 45, 180);
        g2d.fillArc(25, -50, 50, 50, -45, 180);
        int[] xPoints = {0, -15, -30, -25, 0, 25, 30, 15};
        int[] yPoints = {-25, -40, -10, 20, 10, 20, -10, -40};
        g2d.fillPolygon(xPoints, yPoints, xPoints.length);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Java Heart");
        frame.add(new Heart());
        frame.setSize(350, 350);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/729348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计模式与体系结构-设计模式-行为型软件设计模式-策略模式

目录 四、策略模式类图代码实例使用策略模式对中国的十二属相(Chinese Zodiac)设计查询系统。策略模式与状态模式课程作业 四、策略模式 类图 代码 策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算…

【Django】Django框架使用指南

Django使用指南 作者简介:嗨~博主目前是长安大学软件工程专硕在读📘,喜欢钻研一些自己感兴趣的计算机技术,求关注😉! 框架简介:Django是一个基于Python语言的开源Web应用框架,采用 M…

路径规划算法:基于学生心理学优化的路径规划算法- 附代码

路径规划算法:基于学生心理学优化的路径规划算法- 附代码 文章目录 路径规划算法:基于学生心理学优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能…

Django框架-11

聚合查询 1.聚合函数 使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg 平均,Count 数量,Max 最大,Min 最 小,Sum 求和,被定义在django.db.models中。 例:查询图书的总阅读量。 from mo…

数据结构错题集 第七章 查找

7.2 124 等比 1(1-2^h)/(1-2) 2^h - 1 查找失败的最小次数相等吗? 13.A D 推一下公式 (M1)/2 平均查找长度 17.有序 就可二分查找 记住向下取整就是往右 13题就是个例子 向上取整就是往左 7.3 A错 不会分裂 不是平衡树 12。 C 黑高…

硬件基础——数字电路门电路

门电路与D触发器 一、与门 1.基本定义 与门又称 “与电路”、逻辑“积”、逻辑“与”电路,是执行“与”运算的基本逻辑门电路。有多个输入端,一个输出端。当所有的输入同时为高电平(逻辑1)时,输出才为高电平&#xf…

服务器进程查询

1. 查看当前正在运行的所有进程 ps -ef :查看当前所有正在运行的进程 UID:真实用户IDPID:进程的 IDPPID:父进程的 PIDCMD:运行当前进程的命令 2. 查看运行当前进程的指令 ps -aux | grep PIDPID表示你需要查询的进…

Linux 学习记录46(QT篇待完成)

Linux 学习记录46(QT篇) 本文目录 Linux 学习记录46(QT篇)一、建立QT项目工程二、1.2. 三、自动生成的文件介绍1. tempprj.pro2. mainwindow.h3. mainwindow.cpp4. main.cpp5. mainwindow.ui 四、常用类的介绍1. 信息调试类(1. qDebug(2. 输出当前界面尺寸(3. 设置当前界面尺寸…

第七章:YOLO v2网络详解

(目标检测篇)系列文章目录 第一章:R-CNN网络详解 第二章:Fast R-CNN网络详解 第三章:Faster R-CNN网络详解 第四章:SSD网络详解 第五章:Mask R-CNN网络详解 第六章:YOLO v1网络详解 第七章:YOLO v2网络详解 第八章:YOLO v3网络详解 文章目录 系列文章目录技…

PYQT QWidget的方法介绍

https://img-blog.csdnimg.cn/bae4318f1a9342ff85c9e7d27652cf91.png

uniapp打包app,对接华为厂商,实现unipush离线消息推送

今天终于可以抽出点时间,来记录一下这几天心塞的心情。上周公司派过来一个活,说是使用uniapp制作一个app,同时要实现在线消息推送和离线消息推送,啥话没说就揽了下来。不过说实在的,从来没有开发过app,好歹…

【网络安全带你练爬虫-100练】第9练:post提交/提取json数据包

目录 一、目标1:post提交json数据包 二、目标2:接收json数据包 三、目标3:提取指定的键值 四、网络安全小圈子 一、目标1:post提交json数据包 (大家可以自己随便找一个,像一些登录过的网站刷新一下&am…

jenkins构建历史设置保留数量

jenkins默认保留构建历史所有,这样磁盘空间越来越小,设置保留个数。 进入job项目中-配置 勾选Discard old builds,设置保留天数和个数,可以只填保留个数。 应用保存job配置,并重新构建项目,重新构建完成后…

基于pyqt5+opencv实现16位tif影像转jpg

现在大部分图像软件都支持tiff影像的浏览,但都是仅限于8位的影像,对应CV16U类型的tiff影像并不支持(这需要专业的gis软件才可进行操作)。为了便捷操作,故此基于pyqt5opencv实现16位tif影像转jpg的软件。 本博文涉及基于…

OpenCV4通道的分离split(),通道的合并merge(),通道的混合mixChannels()

文章目录 1、通道的分离函数 split()函数原型&#xff1a;&#xff08;1&#xff09;函数原型一&#xff1a;用 Mat型数组 Mat mvbegin[3]存储分离后的图像&#xff1b;输入参数&#xff1a; &#xff08;2&#xff09;函数原型二&#xff1a;用 vector容器 vector <Mat>…

科技中心PMO的建设与实践︱德邦证券PMO专家张鉴庭

德邦证券科技中心PMO专家张鉴庭先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;科技中心PMO的建设与实践。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; 在数字化转型的背景下&#xff0c…

jvm对象创建和内存分配优化

一、创建对象过程 1、类加载检测 虚拟机遇到一条new指令时&#xff0c;首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用&#xff0c;并且检查这个符号引用代表的类是否是否已被加载、解析和初始化过。如果没有&#xff0c;那必须先执行相应的类加载过程。 …

ModaHub魔搭社区:向量数据库Milvus Lite的优势和适配场景

目录 Milvus Lite 的优势 Milvus Lite 的适配场景 如何安装、部署和使用 Milvus Lite? 总结 想要体验世界上最快的向量数据库&#xff1f;缺少专业的工程师团队作为支撑&#xff1f;Milvus 安装环境受限&#xff1f; 别担心&#xff0c;轻量版 Milvus 来啦&#xff01; …

火爆全网,python自动化测试 parametrize参数化+allure测试报告(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 pytest的参数化&a…

1763_gcc编译c语言makefile自动生成工具的Perl实现_Linux

全部学习汇总&#xff1a; GreyZhang/g_makefile: Learn makefile from all kinds of tutorials on the web. Happy hacking and lets find an common way so we may dont need to touch makefile code any more! (github.com) 其实&#xff0c;调试完这个之后觉得之前Windows上…