首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java心形代码初学者_java输出爱心代码

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

作者头像
全栈程序员站长
发布2022-11-03 16:55:18
发布2022-11-03 16:55:18
1.9K00
举报
运行总次数:0

绘制心形曲线


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(θ)) 算法实现:

代码语言:javascript
代码运行次数:0
运行
复制
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.代码

代码语言:javascript
代码运行次数:0
运行
复制
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.cn/181230.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 绘制心形曲线
    • 1.要求
    • 2.原理
    • 3.语法
    • 4.代码
    • 5.结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档