首先,这颗心是数学家画的,不是我。原理很复杂,大致原理就是迭代。
画这颗心的代码已经给出来了

public void draw(Graphics g){ for(int i=0;i<=180;i++){for(int j=0;j<=180;j++){double r=Math.PI/45*i*(1-Math.sin(Math.PI/45*j))*20;double x=r*Math.cos(Math.PI/45*j)*Math.sin(Math.PI/45*i)+300;double y=-r*Math.sin(Math.PI/45*j)+200;    Color c=Color.getHSBColor(i*j/8100.0f, 0.9999f,0.9999f);   g.setColor(c);      g.drawOval((int)x, (int)y, 1,1);   try{    Thread.sleep(1);    }catch(Exception e){}        }  } }

但是,我卡在了怎么调用这个函数这里。
我本来是准备在主函数里写一个new一个heart对象,然后想C语言一样用这个对象调用draw方法。
然而这个方法需要传入Graphics g参数。
当我new一个Graphics对象时,编译器报错说,Graphics不能实例化。
um…然后我就直接Graphics g;
然后传参之后,就报错“空指针错误”。凉。。。。。

最后,再问了同学之后,发现自己的代码书写习惯十分不好,或者说是还没有熟悉规则。

1、首先是对Graphics的了解不够。这是一个画笔,它是有paint()属性的。也就是说,它可以理解为是一个画笔。画笔一定是需要有画布才能作画的。因此必须有JFrame()对象才能在上面作画,这就是它的画布。
2、然后是对编程的耦合度理解并不高。老是习惯把所有的代码全部写进主函数里,导致错误百出,嘤!
接下来是在同学的手把手指导下写出来的代码。很漂亮辽。

package heart;import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;import javax.swing.JFrame;public class heart extends JFrame{/*** */private static final long serialVersionUID = -7128362663435137794L;public void draw(Graphics g){ for(int i=0;i<=180;i++){for(int j=0;j<=180;j++){double r=Math.PI/45*i*(1-Math.sin(Math.PI/45*j))*20;double x=r*Math.cos(Math.PI/45*j)*Math.sin(Math.PI/45*i)+300;double y=-r*Math.sin(Math.PI/45*j)+200;    Color c=Color.getHSBColor(i*j/8100.0f, 0.9999f,0.9999f);   g.setColor(c);      g.drawOval((int)x, (int)y, 1,1);   try{    Thread.sleep(1);    }catch(Exception e){}        }  } }public void showUI(){this.setSize(new Dimension(1200,1200));this.setVisible(true);Graphics g = this.getGraphics();draw(g);}public  static void main(String[] args) {heart h = new heart();h.showUI();}}

下面是我的小心心

利用JAVA画一颗小心心相关推荐

  1. python画一颗小心心

    python画一颗心心 主要使用scatter函数画 cmap="Reds"表示画一个炽热的心心 这个参数还有"autumn","cool" ...

  2. 如何用java画一颗圣诞树

    如何用java画一颗圣诞树 哈喽 ,今天教各位一个有趣的代码,利用for循环简单地画一个圣诞树. 代码如下: ```java public class Dan {public static void ...

  3. python画一颗心_利用python画一颗心的方法示例

    前言 Python一般使用Matplotlib制作统计图形,用它自己的说法是'让简单的事情简单,让复杂的事情变得可能'.用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统 ...

  4. 如何用python画心形_利用python画一颗心的方法示例

    前言 Python一般使用Matplotlib制作统计图形,用它自己的说法是'让简单的事情简单,让复杂的事情变得可能'.用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统 ...

  5. 利用Java制作背单词小应用

    该小应用是本人学习Java前期制作的程序,可能还有着一些Bug没有修复,敬请谅解!该应用用到了图形化界面.I/O流本地磁盘读取/写入数据.键盘事件.焦点事件.监听事件等知识.该应用拥有功能: file ...

  6. 利用java编写剪刀石头布的小游戏

    import java.util.Scanner; import java.util.Random; public class Demo2Game {public static void main(S ...

  7. 利用Python画一颗神奇的树!

    turtle是一只神奇的小海龟,可以画出大千世界.而turtle加入了python大家族,像是如龟得水,变得更加受欢迎. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  8. 利用Java语言制作关机小程序

    本程序用到了Java的图形化界面,运行后弹出一个方框窗口,文本框下方是提示,看清提示后可以输入英文大/小写答案,若输入出错,则在60秒后关机,若在此期间,改窗口丢失焦点,则弹出提示框,并在15秒后关机 ...

  9. java代码怎么打印松树_用JAVA画一颗树(Applet)

    1.松树: import java.awt.*; import java.applet.*; public class Tree extends Applet { public void paint( ...

最新文章

  1. 经典C语言程序100例之八一
  2. python样本不均衡_使用Python中的smote处理正负样本之间的不平衡,python,实现,失衡,问题...
  3. 整合.NET WebAPI和 Vuejs——在.NET单体应用中使用 Vuejs 和 ElementUI
  4. (转)递归转非递归的思路和例子
  5. JAVA微信开源项目(jeewx)百度BAE 部署文档
  6. jquery字符串序列化方法总结
  7. Keras-Sequential模型(1)
  8. python中的进程池:multiprocessing.Pool()
  9. 并发编程之——写锁源码分析
  10. Android:使用SharedPreferences进行数据存储
  11. Selenium WebDriver-通过键盘事件操作浏览器
  12. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-7.接口配置文件自动映射到属性和实体类配置...
  13. paip.程序设计--扫号器跑号器结果分类设计
  14. IOS逆向-静态分析
  15. win7计算器功能详解 win10参考
  16. 清理注册表 php,如何彻底清理注册表?小编教你清理注册表操作方法
  17. win10计算机设备感叹号,Win10资源管理器无法显示iphone,设备管理器中存在黄色感叹号。...
  18. 国内免费版ChatGPT和AI绘画
  19. 「MOSS - 16」MOSS队:Scrum Meeting 7
  20. 麻省理工MIT大神解说数学体系;2012年计算机博士港中大林达华简历(公号回复“MIT林达华”下载彩标PDF论文)

热门文章

  1. 滤波器设计中的频率归一化问题
  2. 包装实训总结报告_包装设计实训心得体会
  3. 我的电脑,虽然你很慢,但是我很爱你啊!
  4. linux系统安装vivado软件,vivado 2017下载 Xilinx Vivado HLx 2017.2 在线安装包 官方安装版(附许可证) 64位 Linux版 下载-脚本之家...
  5. nginx-rtmp-hls 模块---大疆mavic推流hlx无法播放问题
  6. java字符串用0X0F分割_微信公众帐号开发教程第4篇-----开发模式启用及接口配置Java...
  7. 网线传输速度测试_如何测验网线的好坏,传输速度等
  8. “火星人”马斯克推论:世界很大可能性是被编程的,上帝可能是个程序员!
  9. 常用的http响应状态码大全
  10. 永远不要去依赖别人_经典语录:不要轻易去依赖一个人,它会成为你的习惯