让蒲公英飘动起来

2024-06-21 18:58
文章标签 起来 蒲公英 飘动

本文主要是介绍让蒲公英飘动起来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

晚上回到宿舍,突然想起,我可以把昨天晚上的代码修改一下,来让我的蒲公英达到飘动的效果,然后就把代码乱修改了一番,代码如下,但是飘动的效果得在运行的时候才能看出来,具体代码如下:

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.JFrame;
import javax.swing.JPanel;/*** 画出一颗动态的蒲公英。。。。(画出蒲公英的改进版,使得蒲公英可以飘动)* @author LONG**/
public class TheTree extends JFrame {private static final long serialVersionUID = 1L;private Dimension di = null;private Graphics2D gr = null;private int x,y;		//蒲公英初始飘动的点private JPanel jp = null;		//将面板声明为全局变量private int count = 0;		//用来记录次数/*** 程序主入口* @param args*/public static void main(String[] args){TheTree tt = new TheTree();tt.showFrame();}/*** 展示窗体,将窗体显示出来*/public void showFrame(){this.setTitle("The Tree");Toolkit tl = Toolkit.getDefaultToolkit();di = tl.getScreenSize();this.setSize(di.width,di.height);this.setDefaultCloseOperation(3);jp = new JPanel();jp.setPreferredSize(new Dimension(di.width,di.height));x = di.width;			//初始化坐标值,使其最大y = di.height;			//初始化坐标值,使其最大this.add(jp);this.setResizable(false);jp.setBackground(Color.BLACK);this.setVisible(true);gr = (Graphics2D) jp.getGraphics();//给界面添加监听器,判断执行次数jp.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e){draw(e);}});	}/*** 初始进行选择,来判断是初次绘画还是改变后* @param e		传入点击事件*/public void draw(MouseEvent e){while(y > 0){if(count == 0){x = e.getX();	//自己选择蒲公英生长的位置y = e.getY();}else{y -= 5;		//非初次的话,那么进行改变位置,传入参数x += 6;}		init(x,y);		//执行下面的函数}}//用来初始化蒲公英的位置,达到飘动的效果public void init(int xx,int yy){BasicStroke bs = new BasicStroke(4);gr.setStroke(bs);gr.setColor(Color.GREEN);gr.drawLine(xx, yy, xx, yy - 400);	//用来先画出蒲公英的主干doSomething(xx,yy - 400,150);}/***那我们来画蒲公英吧* * @param x1	起始点x坐标* @param y1	起始点y坐标* @param h		长度h*/public void doSomething(int x1, int y1, int h){//使循环将所有的蒲公英分支画出来for(int i = 0; i < 90; i++){double angle = i * 2 * Math.PI/90;		//得到等分的九十个角int x2 = x1 + (int)(Math.sin(angle) * h);int y2 = y1 - (int)(Math.cos(angle) * h);BasicStroke bs_next = new BasicStroke();gr.setStroke(bs_next);gr.setColor(Color.gray);gr.drawLine(x1, y1, x2, y2);gr.setColor(Color.WHITE);gr.fillOval(x2 - 1, y2 - 1, 5, 5);}try {Thread.sleep(120);} catch (InterruptedException e) {e.printStackTrace();}//再次将蒲公英画黑,重复上面的画的动作,只不过是将所有的颜色都改为黑色的,已达到飘动的效果BasicStroke bs = new BasicStroke(4);gr.setStroke(bs);gr.setColor(Color.BLACK);gr.drawLine(x1, y1 + 400, x1, y1);	for(int i = 0; i < 90; i++){double angle = i * 2 * Math.PI/90;		int x2 = x1 + (int)(Math.sin(angle) * h);int y2 = y1 - (int)(Math.cos(angle) * h);BasicStroke bs_next = new BasicStroke();gr.setStroke(bs_next);gr.setColor(Color.BLACK);gr.drawLine(x1, y1, x2, y2);gr.setColor(Color.BLACK);gr.fillOval(x2 - 1, y2 - 1, 5, 5);}count++;}
}

 

 

这篇关于让蒲公英飘动起来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1082060

相关文章

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l

Java8中的Stream,让集合操作酸爽起来

简介 java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。 Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合

hibernate泛型Dao,让持久层简洁起来

【前言】hibernate作为持久层ORM技术,它对JDBC进行非常轻量级对象封装,使得我们可以随心所欲的使用面向对象的思想来操作数据库。同时,作为后台开发的支撑,的确扮演了一个举足轻重的角色,那么我们在项目中如何灵活应用hibernate,也会给项目维护以及项目开发带来便利,下面我将展示我们项目中是如何来对hibernate进行应用和操作。 【目录】              -

大数据只是听起来唬人?其实啥也不是。

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 各位读者大佬们晚上好。 前两天一个读者找到我,问了一些问题。想来大家都是同龄人,虽然素不相识,但是我想起来我前几年刚毕业的时候,大概也是怀揣这样的问题,进入到了这么一个行业。 这个同学的问题大概也是很多新手同学的疑问罢。 这位同学在学校一直学习的是Java后端的工作,「然后现在做实时流平台,岗位是Java大数据,工作一年半了快,但

卷起来了,Apache Flink 1.13.6 发布!

点击上方蓝色字体,选择“设为星标” 回复"面试"获取更多惊喜 Hi,我是王知无,一个大数据领域的原创作者。  放心关注我,获取更多行业的一手消息。 Apache Flink 社区发布了 Flink 1.13 的另一个错误修复版本。 此版本包括99个错误和漏洞修复以及 Flink 1.13 的小改进,包括 Apache Log4j 的另一次升级(到 2.17.1)。您将在下面找到所有错误修复

贝锐蒲公英远程视频监控方案:4G入网无需公网IP,跨品牌统一管理

在部署视频监控并实现集中监看时,常常会遇到各种挑战。比如:部分监控点位布线困难、无法接入有线宽带,或是没有固定公网IP,难以实现远程集中监看;已有网络质量差,传输延迟大、丢包率高,远程实时查看监控容易导致画面卡顿、丢帧,影响监看效果;一些监控区域已经有设备,不同品牌、不同设备之间缺乏统一标准和平台,无法快速实现远程统一管理、集中监看。 面对上述问题,如果替换现有网络,申请运营商专线不仅价格高

题目:输入 5 个数(含负数、小数)将它们按由小到大的顺序排列起来。提示:需要排序的数字通过参数传递进来。

题目:输入 5 个数(含负数、小数)将它们按由小到大的顺序排列起来。 提示:需要排序的数字通过参数传递进来。 例如: 输入:-1 2.1 -3 5 7 输出: -3 -1 2.1 5 7 import java.util.Scanner;public class FuShuXiaoShuPaiXu {public static void swap(double[] arr,int a,in

IDEA 导入Web 项目并跑起来

第一步: File -----> open :  打开  web 项目文件 (idea  与eclipse 不同之处就是他 以 项目文件 为单位,没有工作空间的说法) 第二步: 配置 tomcat  如图不说!!! 第三步: 配置 project  结构  如图不说!!! 第4 步: 配置 project  如图不说!!! 第5步: 配置 Mo