200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 小小“潘多拉”魔盒

小小“潘多拉”魔盒

时间:2022-11-27 18:23:29

相关推荐

小小“潘多拉”魔盒

传说中,“潘朵拉盒子”是“上帝”与“魔鬼”为了“天堂之约”而共同创造的“宝物”,是用来存放“情感精灵”的地方。左边,是“上帝”存放“乐趣精灵”的地方;右边是“魔鬼”存放“痛苦精灵”的地方。

而我认为,潘多拉的精彩之处在于你永远不会知道下一个出现的东西是什么,对你来说是好是坏。最近写的这个小程序,就是想取它的这层意思,通过随机数的调用,结合线程,分形一起做一个你永远猜不到下一个图案会是什么样的程序。

做之前,一直搞不懂,为什么要花那么多的时间去做分形的练习。明明就是几个数学函数所展示出的图片么,有专用强大的Maltab去画它就好,又何必去折腾绘制它呢。分形的出现对于大脑来说不亚于高数的折磨。

什么迭代啊,重绘啊,画板上所展示函数的部分,放大啊,位置的调整啊,都比较折腾。

光是迭代中,要绘制图形时,在不同的迭代时,点的坐标简直可以让人抓狂,稍不注意,出来的图形完全意想不到。

Draw1(g, x1, y1, x6, y6, x5, y5, n - 1);Draw1(g, x6, y6, x2, y2, x4, y4, n - 1);Draw1(g, x5, y5, x4, y4, x3, y3, n - 1);

这几个点的顺序让我纠结了好久,图上画出来写好的点,一运行就各种神奇。

对于x5,x6,x7,y5,y6,y7的定义,一开始没有想太多,也算意识不够强烈吧,只把他们定义为全局变量,结果在每次调用时都要重新开始算值,导致图形始终只保持一种形状,与不用迭代前无区别。

在N值得使用上,函数中填写n总是导致越界。这一点,值得留意。

分形的美丽炫彩图案有很多,个人比较喜欢

还有

这俩个图片

当然,在没有使用线程前,点击按钮后,迭代没有完成按钮不会弹起,当然也不会出现好多幅图案同时迭代的“壮观场面”

线程的使用,需要继承Thread类

其中主要用到的方法也就是start();run();stop();和sleep();

MyThread mt = new MyThread(g);mt.start();public void run() {//判断点击次数并运行分形Random r = new Random();int q = r.nextInt(3);if (q==0) {Draw1(g,x1,y1,x2,y2,x3,y3,n);} if(q==1){g.clearRect(0, 0, 1230,700);g.setColor(Color.green);Draw3(g,x4,y4,x5,y5,n);} if(q==2) {g.clearRect(0, 0, 1230,700);g.setColor(Color.red);Draw4(x1,y1,x2,y2,deepth);g.clearRect(0, 0, 1230,700);} }public void sleep(int sTime){try {Thread.sleep(sTime);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

因为用的方法是点击按钮生成随机数,继而将随机数传递个判断框进而调用函数,所以借用Random()函数实现了随机的过程。

而每一次分形结束后都要清屏,负责就会有图像的重叠,影响后来图像的美观。这里使用.clearRect()函数帮忙实现。

展示俩张半成品的图

不足之处还是存在,例如:图形各部分颜色的不同,迭代次数,节目的设计还没有完善。在以后的调试中,努力实现

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。