java心形代码初学者_java输出爱心代码

java心形代码初学者_java输出爱心代码绘制心形曲线1.要求非常有名的笛卡尔曲线数学公式:(x2+y2−2ax)2=4a2(x2+y2)(x^{2}+y^{2}-2ax)^{2}=4a^{2}(x^{2}+y^{2})(x2+y2−2ax)2=4a2(x2+y2)即心形曲线,本例通过Applet绘制出笛卡尔曲线。2.实现过程笛卡尔曲线是一个圆在同样半径的圆周上滚动,在滚动的过程中一定会形成轨迹曲线。它的数学方程为x=a(2c…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

绘制心形曲线


1.要求

非常有名的笛卡尔曲线数学公式: ( x 2 + y 2 − 2 a x ) 2 = 4 a 2 ( x 2 + y 2 ) (x^{2}+y^{2}-2ax)^{2}=4a^{2}(x^{2}+y^{2}) (x2+y2−2ax)2=4a2(x2+y2) 即心形曲线,本例通过Applet绘制出笛卡尔曲线。

2.原理

笛卡尔曲线是一个圆在同样半径的圆周上滚动,在滚动的过程中一定会形成轨迹曲线。它的数学方程为 x = a ( 2 c o s ( t ) − c o s ( 2 t ) ) x=a(2cos(t)-cos(2t)) x=a(2cos(t)−cos(2t)) y = a ( 2 s i n ( t ) − s i n ( 2 t ) ) y=a(2sin(t)-sin(2t)) y=a(2sin(t)−sin(2t)) r = 2 a ( 1 + c o s ( θ ) ) r=2a(1+cos(\theta )) r=2a(1+cos(θ))
算法实现:

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)+width/2; y=-r*Math.sin(Math.PI/45*j)+height/4; 

3.语法

  • init方法,对Applet程序进行初始化,当Applet首先被加载时,该方法会自动被调用一次。
  • paint方法,将Graphics对象画出的图像打印出来.
  • Math类的方法说明:Math.PI是Math的一个final常量,表示比任何其他值更接近圆的周长与直径之比pi;Math。Sin()表示返回角的三角正弦;Math.cos()表示返回角的三角余弦。

4.代码

import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.applet.*; import java.awt.*; public class rw32 extends Applet { 
     int width,height; //声明int类型变量 Image image;//声明图像变量 Graphics draw_Curve;//声明图形绘制变量 public void init(){ 
    //Applect程序初始化 setBackground(Color.black); this.setSize(450,410); width=getSize().width; height=getSize().height; image=createImage(width,height); draw_Curve=image.getGraphics(); } public void paint(Graphics g){ 
     //利用Graphics绘制组件 draw_Curve.clearRect(0, 0, width, height);//用制定颜色填充清除指定的矩形 draw_Curve.setColor(Color.red); int i,j; double x,y,r; for(i=0;i<=90;i++)//笛卡尔数学公式:(x*x+y*y-2ax)2=4a*a(x*x+y*y) for(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)+width/2; y=-r*Math.sin(Math.PI/45*j)+height/4; draw_Curve.fillOval((int)x, (int)y, 2, 2); } g.drawImage(image,0,0,this); } public static void main(String[] args){ 
     System.out.println("笛卡尔心形曲线已成功显示"); } } 

5.结果

运行后结果如下图所示:
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181230.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android悬浮窗的实现

    Android悬浮窗的实现*本篇文章已授权微信公众号guolin_blog(郭霖)独家发布现在很多应用都使用到悬浮窗,例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。那么今天我们就来实现一下Android悬浮窗,以及探索一下实现悬浮窗时的易错点。

    2022年7月17日
  • Linux基础命令—gunzip「建议收藏」

    Linux基础命令—gunzip「建议收藏」Linux基础命令—gunzip

    2022年4月21日
  • python激活成功教程qq密码_央·python编程之QQ数据清洗

    python激活成功教程qq密码_央·python编程之QQ数据清洗一般我们从网上下下来的数据都很杂乱的,什么样的情况都有,不利于我们整理,所以在拿到数据的时候我们会先做一遍数据清理,把垃圾数据清理掉。今天我们拿QQ数据做示范。我们命令行是怎么看数据![Asm]纯文本查看复制代码morezy.txt#然后空格进行翻页效果如图:1.png(11.5KB,下载次数:0)2018-1-3017:54上传从数据中得知:—-中间4个-左边是账号,右边…

    2022年7月20日
  • Pytest(1)安装与入门「建议收藏」

    Pytest(1)安装与入门「建议收藏」pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

    2022年7月29日
  • 产品产生过程「建议收藏」

    产品产生过程「建议收藏」产品产生过程

    2022年4月22日
  • Java 多线程(超详细)

    Java 多线程(超详细)多线程学习思路:为什么学习线程?为了解决CPU利用率问题,提高CPU利用率。=》什么是进程?什么是线程?=》怎么创建线程?有哪几种方式?有什么特点?=》分别怎么启动线程?=》多线程带来了数据安全问题,该怎么解决?=》怎么使用synchronized(同步)决解?=》使用同步可能会产生死锁,该怎么决解?=》线程之间是如何通信的?=》线程有返回值吗?该如何拿到?=》怎么才能一次性启动几百上千个的线程?线程的概念什么是进程进程是操作系统中正在执行的不同的应用程序,例如:我

    2022年7月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号