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+y22ax2=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)
上一篇 2022年10月16日 下午8:36
下一篇 2022年10月16日 下午8:36


相关推荐

  • NEMA格式

    NEMA格式NMEA 標準格式 nbsp 大部份的 GPSreceiver 都具被有美國國家海洋電子學會 NationalMari NMEA 所制定的標準規格 其制定了所有航海電子儀器間的通訊標準 包括了資料的格式及傳輸資料的通訊協定 nbsp NMEA 規格有 0180 0182 0183 等三種 NMEA 0183 是架構在 0180 及 0182 的基礎上 增加了 GPSreceiv

    2026年3月19日
    2
  • 运行JavaScript代码片段的19种工具

    运行JavaScript代码片段的19种工具前端日常开发中 我们使用喜爱的 IDE 调试 JavaScript 代码 比如我喜欢的代码编辑器有两个 SublimeText3 和 VSCode 前几年还使用过 Atom 偶尔我们会遇到临时需要快速分享给同事或者朋友一段代码的场景 那么在线的 JavaScript 运行环境的重要性就体现出来了 为了解决这样的问题 业界涌现出了很多很优秀的在线编辑器 比如 JSBin JSFiddle CodePen CodeSandbox 等 接触前端这些年也陆陆续续发现了一些不错的其他选择 再看下浏

    2026年3月16日
    1
  • linux的grub_grub linux

    linux的grub_grub linux系统引导管理器GRUB,为初学者指南作者:北南南北来自:LinuxSir.Org摘要: GRUB是多系统引导管理器,简单的说既能引导Linux,同时也能引导Windows;从LinuxSir.Org讨论区近四年的观察来看,大多初学者并不能在短时间内掌握GRUB的用法,为了解决初学者在最短时间内掌握GRUB,重写GRUB入门文档还是有必要的;本文重点介绍了GRUB的menu.

    2025年6月11日
    4
  • DIKW模型

    DIKW模型在信息管理 信息系统和知识管理学科中 最基本的模型是 DIKW data information knowledge wisdom 层次模型 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 图 1DIKW 模型流程图 来源维基百科 数据从信号获取的角度看 数据是对目标观察和记录的结果 是关于现实世界中的时间 地点 事件 其他对象或概念的描述 在表达为有用的

    2026年3月20日
    2
  • java 对象为空判断_java中判断对象是否为空的方法

    java 对象为空判断_java中判断对象是否为空的方法判断Java对象是否为null的方法:首先,直接使用object==null去判断,对象为null的时候返回true,不为null的时候返回false。然后,在object!=null为true的情况下,进一步去判断对象的所有属性是否为null。实例:packagecom.gj5u.publics.util;importjava.util.List;/***判断对象是否为空**…

    2022年5月2日
    263
  • kong使用例子demo

    kong使用例子demo

    2021年5月14日
    143

发表回复

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

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