Java画心形线

心形线(Java语言实现) 原理与具体实现 用Java来画立体感心形 阅读详情

画出心形线,同时在左上角显示步长值和画图所用时间


import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.Random;
import java.math.BigDecimal;
import static java.lang.Math.*;

public class Test{
	long start = System.currentTimeMillis();
	private Frame f = new Frame("心形线");
	//画布大小
	private final int SIZE=600;
	//重写paint()
	private MyCanvas area = new MyCanvas();
	
	private BufferedImage image = new BufferedImage(SIZE,SIZE,BufferedImage.TYPE_INT_RGB);
	private Graphics g = image.getGraphics();
	
	//循环步长
	private final double STEP = 0.00001;
	
	private void init(){
		area.setPreferredSize(new Dimension(SIZE,SIZE));
		// 画白色背景
		g.setColor(Color.white);
		g.fillRect(0, 0, SIZE, SIZE);
		// 画两条坐标轴
		g.setColor(Color.black);
		g.drawLine(0,SIZE/2,SIZE,SIZE/2);
		g.drawLine(SIZE/2,0,SIZE/2,SIZE);
		
		//计算坐标
		//新坐标
		int x1, y1,x2, y2;
		for (double t = -Math.PI; t < Math.PI; t = t + STEP){
			g.setColor(Color.black);
			x1 = axisSystem(axisX(t));
			y1 = axisSystem(axisY(t));
			x2 = axisSystem(axisX(t+STEP));
			y2 = axisSystem(axisY(t+STEP));
			//原曲线是横向的,为求美观调整了输出把它画成纵向,若画其他函数须修改
			//g.drawLine(x1, y1, x2, y2);
			g.drawLine(y1, SIZE-x1, y2, SIZE-x2);
				
		}
		
		
		//关闭窗口
		f.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});	
		
		long end = System.currentTimeMillis();
		g.setColor(Color.red); 
		g.setFont(new Font("Times", Font.BOLD,15));
		
		g.drawString("步长值:" + BigDecimal.valueOf(STEP) , 20, 30);
		g.drawString("画图所用时间:" + (end - start) + "毫秒", 20, 50);
		
		area.repaint();	
		f.add(area);
		f.pack();
		f.setVisible(true);
	}
	
	//根据t算出对应的心形线新坐标X值,若画其他函数须修改
	private double axisX(double t){
		return 2*cos(t) - cos(2*t);
	}
	
	//根据t算出对应的心形线新坐标Y值,若画其他函数须修改
	private double axisY(double t){
		return 2*sin(t) - sin(2*t);
	}
	
	//把新坐标换算成系统坐标,若画其他函数须修改
	private int axisSystem(double d){
		return (int)((0.5+d/8)*SIZE);
	}
	
	private class MyCanvas extends Canvas{
		public void paint(Graphics g){
			g.drawImage(image, 0, 0, null);
		}
	}

	public static void main(String[] args){
		new Test().init();
	}
}


心形线绘制——Java实现 心形线,是一个圆上的固定一点在它绕着与其相切且半径相同的另外一个圆周滚动时所形成的轨迹,因其形状像心形而得名。 心脏线亦为蚶线的一种。在曼德博集合正中间的图形便是一个心脏线。心脏线的英文名称“Cardioid”是 de Castillon 在1741年的《Philosophical Transactions of the Royal Society》发表的;意为“像心脏的”。 故事 《数学的... 阅读详情

相关推荐

Java绘制笛卡尔心形线

Java 实现笛卡尔心形线的绘画 利用心形线的参数方程描点即可,Java中没有点,可以用半径很小的圆代替,使用Thread.sleep方法,即可做到每画一次点休眠一次。代码也是比较简单,如下: import java.awt.*; import javax.swing.*; class HeartLine extends JFrame { public static void main(String[] args) { HeartLine frame=new HeartLine("HeartL

m0_47202518的博客 1863

程序员专属浪漫:如何用java代码画❤️

有位小伙伴说,看到一个帖子,一个计算机博士接亲时,要求现场写代码,5分钟做出一个爱心。我们就看看如何用java设计出心形的代码。 我找了一下,发现方法竟然很多,我们就来见识一下,最后我们看一下如何用简单的java代码实现一个心。 一.❤️的数学背景 据说,心形线起源于法国的笛卡尔,他曾认识一位瑞典小公国的公主克里斯汀,并成为了公主的数学老师,并渐渐产生爱慕之心,但是被国王阻止了(想象一段狗血的剧情)。笛卡尔被迫流放回法国,对公主日夜思念便写信,但是又怕被人看到,于是就想到了用数学公式画心形线来表白心迹

纵横千里 捭阖四方 的专栏 4万+

java画的心形线源码

java画的心形线源码,有需要的可以参考一下。java画的心形线源码,有需要的可以参考一下。

用JAVA画一个爱心

可以使用Java的绘图功能,例如 java.awt.Graphics 或 javafx.scene.canvas.GraphicsContext 等,通过编写代码来绘制爱心形状。 具体实现方式可以使用数学公式,例如使用椭圆方程来绘制两个椭圆,再使用直线方程连接它们形成爱心。 以下是一个简单的例子,使用 java.awt.Graphics 绘制爱心: import java.awt.Color; i...

weixin_42589700的博客 1474

解忧杂货铺(四):Hightec生成HEX方法+小功能开启

Hightec使用的一些常用技能

梦想技术家 2161

python指纹识别算法(亲测代码可用)

python指纹识别算法

2301_76482796的博客 3079

【Java】画心形图形

本来想着自己看下这个源代码能不能实现,看了下源代码其实非常复杂。其中不同的爱心坐标点x,y变化的函数不太一样(

1053

三轴加速度传感器计步算法优化:动态阈值与滤波技术的实践应用

本文深入探讨了三轴加速度传感器计步算法的优化实践,重点分析了动态阈值调整与高效滤波技术如何协同提升计步精度与鲁棒性。通过对比均值滤波的局限,引入向量模长计算、多级自适应阈值以及状态机判决逻辑,并结合代码示例,为嵌入式及移动应用开发者提供了应对复杂运动场景的实用解决方案。

cherry的博客 501

用java画爱心图_Java画心形线

画出心形线,同时在左上角显示步长值和画图所用时间import java.awt.*;import java.awt.event.*;import java.awt.image.*;import java.util.Random;import java.math.BigDecimal;import static java.lang.Math.*;public class Test{long star...

weixin_33195162的博客 2155

计算机保研/考研面试题——计算机组成原理篇

本文总结了985和华五学校习计算机保研/考研常问面试时的计算机组成原理题,欢迎点赞、收藏、评论、关注

安晴晚风的博客 7547

INCA基础教程

以软件自带Demo为例记录INCA学习过程,主要内容包括测量与标定。

yunqianrui的博客 6万+

用java在画布上画心形线_Java画心形线

画出心形线,同时在左上角显示步长值和画图所用时间import java.awt.*;import java.awt.event.*;import java.awt.image.*;import java.util.Random;import java.math.BigDecimal;import static java.lang.Math.*;public class Test{long star...

weixin_39849800的博客 543

在 ABAP 平台配置 OAuth 2.0 Client(OA2C_CONFIG):一份可落地的全景实践

本文详细介绍了在ABAP平台中配置OAuth 2.0客户端的完整流程。重点讲解了四种授权类型(Client Credentials、Authorization Code、SAML 2.0 Bearer Assertion、Resource Owner Password Credentials)的适用场景和配置要点,以及客户端认证的三种方式(Client Secret、Client Certificate、mTLS)。文章提供了操作步骤、排错建议和工程实践指导,包括端点配置、回调地址管理、scopes设置等关

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 355

用java在画布上画心形线_HTML5 用 canvas 绘制心形线

下面就开始写程序了.html>DrawHeart*{margin:0;padding:0;}html{height:100%;margin:0;}body{height:100%;background-color:white;}#canvasZone{width:100%;height:100%;text-align:center;background-color:...

weixin_34693167的博客 153

【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】

1. ARM Coresight(SoC-400/SoC-600) 专栏 2. ARMv8/v9 CPU/Cache 专栏 3. Linux ARM AMBA 总线 专栏 4. Trace32/DS-5 专栏。。。

CodingCos的博客 8241

AutosarMCAL开发——基于EB CRC驱动

本文为博主个人理解总结记录,如有不正,欢迎指正。

qq_45583706的博客 1390

笛卡尔心形线的画法

转载原文:[https://blog.youkuaiyun.com/FE_dev/article/details/80535122](https://blog.youkuaiyun.com/FE_dev/article/details/80535122) 写这篇文章是因为某天看到这样一个公式 r=a(1-cosθ) ,我上网...

xpsallwell的专栏 5万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

一个浪漫又悲情的爱情故事——笛卡尔心形线

说明 写这篇文章是某天看到这样一个公式 r=a(1-cosθ) ,我上网搜了下,原来是笛卡尔心形线的极坐标方程,这个方程里的确有一个浪漫又悲情的爱情故事,感兴趣的朋友可以点这里看看,而至于这个故事是真是假,这 并不重要。 而这篇文章的目的是要用前端的方式,画出笛卡尔心形线。 本来我想,这么经典的公式,网上应该已经有人实现过了的吧。 我搜了搜,不得不佩服网友们,有 Java 实现的,有 C#...

FEWY的博客 7万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python turtle笛卡尔心形线_一个浪漫又悲情的爱情故事——笛卡尔心形线

说明写这篇文章是因为某天看到这样一个公式 r=a(1-cosθ) ,我上网搜了下,原来是笛卡尔心形线的极坐标方程,这个方程里面的确有一个浪漫又悲情的爱情故事,感兴趣的朋友可以点这里看看,而至于这个故事是真是假,这 并不重要。而这篇文章的目的是要用前端的方式,画出笛卡尔心形线。本来我想,这么经典的公式,网上应该已经有人实现过了吧。我搜了搜,不得不佩服网友们,有 Java 实现的,有 C# 实现的,也...

weixin_39685762的博客 1400

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

用JAVA和C++ 画心

心形线      心形线,是一个圆上的固定一点在它绕着与其相切且半径相同的另外一个圆周滚动时所形成的轨迹,因其形状像心形而得名。      心脏线亦为蚶线的一种。在曼德博集合正中间的图形便是一个心脏线。心脏线的英文名称“Cardioid”是 de Castillon 在1741年的《Philosophical Transactions of the Royal Society》发表的;意为“像心脏...

大鱼的翅膀 4830

Java多线程心形线_Java Cardioid 心脏形曲线 (整理)

1 packagedemo;23 importjava.awt.Color;4 importjava.awt.Graphics;56 importjavax.swing.JFrame;7 importjavax.swing.JPanel;89 /**10 * Java Cardioid 心脏形曲线 (整理)11 * 这是以前看到有关Cardioid一个故事之...

weixin_30456235的博客 471

python画笛卡尔心形线_伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式

近日,一对江西南昌的高颜值学霸情侣引发广泛关注。来自东华理工大学的刘旭东和朱丽芳双双考研成功,两人复试分别以369分和375分的成绩同时被武汉大学资源与环境专业录取。当说起两人为何一起努力考研去同一所大学时,刘旭东笑称“异地恋不稳定,感情需要一个更高的平台升华”。在给大家塞了满满一嘴狗粮的同时,也引发一众网友的强烈好奇心:学霸是如何谈恋爱的?在此,伊对将揭秘不同专业学霸的表白方式。图片来源:微博数...

weixin_39704066的博客 289

JAVA Timer实现动画(银河星空 心形图)

不得不说学好数学的好处心形线(又称心脏线 : 在曼德博集合正中间的图形便是一个心脏线) 本程序用的是极坐标方程 水平方向: ρ=a(1-cosθ) 或 ρ=a(1+cosθ) (a&gt;0) 垂直方向: ρ=a(1-sinθ) 或 ρ=a(1+sinθ) (a&gt;0) 程序代码 实现原理同上篇博客Timer 中断 Canvas重画 带上音乐背景效果还不错,因为是大一时写的还未学到jav...

dustdawn的博客 2917

程序员的浪漫:如何用java代码画❤️表白呢?

有位小伙伴说,看到一个帖子,一个计算机博士接亲时,要求现场写代码,5分钟做出一个爱心。我们就看看如何用java设计出心形的代码。我找了一下,发现方法竟然很多,我们就来见识一下,最后我们看一下如何用简单的java代码实现一个心。一.❤️的数学背景据说,心形线起源于法国的笛卡尔,他曾认识一位瑞典小公国的公主克里斯汀,并成为了公主的数学老师,并渐渐产生爱慕之心,但是被国王阻止了(想象一段狗血的剧情)。笛卡尔被迫流放回法国,对公主日夜思念便写信,但是又怕被人看到,于是就想到了用数学公式画心形线来表白心迹。

爱编程的鱼的博客 649

python 画心_python画心性线

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!的确如此,那是极坐标系,python 的matplotlib同样支持极坐标系的,爱心线的六行pyton代码如下:import numpy as npimport matplotlib.pyplot as pltt =np.linspace(0 , 2 * np.pi, 1024)pl...

weixin_39625747的博客 617
上一篇: 鼠标控制小球移动
下一篇: Java简易绘图板
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值