分形雪花Java代码 雪花算法java 分布式

想实现多个雪花,为什么只有一个雪花,怎么实现多线程,另外怎样实现无窗体的动画, 就跟q宠物那样的

没用Java写过,现这种效果最好是用DriectX或者OpenGL里实现,要不,用Java这类托管语言来做的话,所有的东西都是面向对象的,堆和托管堆交互很频繁,还有开N多线程,线程的数量是有限制的。如果你需要的效果是直接在屏幕上即没有容器的那种,可以直接操作显存试试,这个要用底层语言比如C嵌汇编操作显存的文件映射区域等等,其中雪花飘落的过程用一种计算表达式来实现,比如其中有一些速度因子,大小因子,轨迹因子,等等(看自己喜好)。记得以前写过一个DriectX里的粒子运动效果,和雪花飘落的功能很相似,只是它不能直接在桌面上显示,需要容器。

成都创新互联专注于企业全网整合营销推广、网站重做改版、云龙网站定制设计、自适应品牌网站建设、H5页面制作成都商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为云龙等各大城市提供网站开发制作服务。

详解如何用java实现Koch雪花的绘制

Koch雪花其实就是一种Koch曲线。

Koch曲线是一个数学曲线,同时也是早期被描述的一种分形曲线。它由瑞典数学家Helge von Koch在1904年发表的一篇题为“从初等几何构造的一条没有切线的连续曲线”的论文中提出。有一种Koch曲线是象雪花一样,被称为Koch雪花(或Koch星),它是由三条Koch曲线围成的等边三角形。至于更详细的请读者百度百科。

如图所示:

解决方案

设想从一个线段开始,根据下列规则构造一个Koch曲线:

1.三等分一条线段;

2.用一个等边三角形替代第一步划分三等分的中间部分;

3.在每一条直线上,重复第二步。

Koch曲线是以上步骤地无限重复的极限结果。

Koch曲线的长度为无穷大,因为以上的变换都是一条线段变四条线段,每一条线段的长度是上一级的1/3,因此操作n步的总长度是(4/3)n:若n→∞,则总长度趋于无穷。Koch曲线的分形维数是log 4/log 3 ≈ 1.26,其维数大于线的维数(1),小于Peano填充曲线的维数(2)。

Koch曲线是连续的,但是处处不可导的。

Koch雪花的面积是 2* √3 * ssup2;/5 ,这里的s是最初三角形的边长,Koch雪花的面积是原三角形面积的8/5,它成为一条无限长的边界围绕着一个有限的面积的几何对象。

JAVA怎么实现一屏幕的雪花飘落,方向随机,有大有小

第一种。。你的雪花是图片,那么你自己多做几张旋转的图片,在每次飘落的时候,1秒后换取另外一张图片。或者做成gif图片。

第二种:你的是自己画的雪花,那么你每秒要重新绘制你的雪花。

闪屏 是指面板刷新带来的负面的效果。。

java 能否实现桌面下雪花的效果?使用swing?

/*

*实现在窗体上随机布满300个雪花("*"),滚动

*在上次的课基础上增加了for循环(一次要产生300个变量),随机数,数组 ;

*下面的序号为步骤

*/ import java.awt.* ; //(3)导入awt包

public class Star {

public static void main(String args[]) {

Frame w = new Frame() ; //(1)绘制窗体

w.setSize(1024,768) ; //(4)把窗体布满全屏

w.setBackground(Color.BLACK) ; //(5)背景为黑颜色

MyPanel mp = new MyPanel() ; //(7)把MyPanel对象mp,添加到窗体w上

w.add(mp) ;

Thread t = new Thread(mp) ;

t.start() ; //(12)启动线程

w.show(); //(2)显示窗体

}

}

//(6)继承Panel类

class MyPanel extends Panel implements Runnable { //(11)实现Runnable接口

int x[] = new int[300] ;

int y[] = new int[300] ; //(8)定义300个数组变量 MyPanel(){

for(int i = 0;i 300; i++) {

x[i] = (int)(Math.random()*1024) ;

y[i] = (int)(Math.random()*768) ; //(9)当程序走到第6步的时候程序就会调用构成函数

} //由于随机数是从0-1之间的数任意产出所以x乘以1024,y乘以768再转换为int类型

}

public void paint(Graphics g) {

for(int i = 0;i 300; i++) {

g.setColor(Color.WHITE) ;

g.drawString("*",x[i],y[i]) ;

//g.drawString("*",30,30) ;(7)绘制一个星星在屏幕的x=30,y=30的位置上

} //(10)绘制300个雪花,把坐标30,30,改成x[i],y[i] ;

} //做到这步可以实现在黑色的天空布满300个星星

public void run() {

while(true) { //(13)实现产生300个雪花往下落死循环

for(int i = 0 ; i 300; i++) {

y[i]++ ; //(14)y坐标不断的+1

if(y[i] 768){ //(18)如果y轴坐标大于768时,则y = 0,回到窗体的顶部

y[i] = 0 ;

}

}

try{ //(16)用try,catch解决线程休眠的异常

Thread.sleep(20) ; //(15)在每次y轴坐标+1后线程休眠20毫秒

}catch(Exception e) {}

repaint() ; //(17)雪花在新的位置重画

}

}

}

网站栏目:分形雪花Java代码 雪花算法java 分布式
转载来源:https://www.cdcxhl.com/article46/dogoheg.html

成都网站建设公司_创新互联,为您提供面包屑导航外贸网站建设营销型网站建设品牌网站建设标签优化App开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发