Processing - 练习(3)"飞碟追踪" - (渐进、延迟效果)
2015-09-03 22:10
357 查看
在void draw()函数中,使用background()函数,相当于屏幕刷新的效果;
实例1:画一个简化的"飞碟",让它渐渐地“飞”向鼠标。(距离越近,渐进越慢)
说明:简易“飞碟”,由两个椭圆组成,够“简易”吧!
这样就一个傻乎乎的飞碟,看起来不够酷,制造它的魅影效果吧!
代码改进:(魅影效果)
动画截图:
实例1:画一个简化的"飞碟",让它渐渐地“飞”向鼠标。(距离越近,渐进越慢)
float x,y; //x,y是圆心坐标 float easing = 0.01; float diameterWidth = 32.0, diameterHeight = 4.0; void draw_a_UFO(float x, float y) { ellipse(x,y,diameterWidth / 3,diameterHeight * 2.5); ellipse(x,y,diameterWidth,diameterHeight); } void setup() { size(720,404); smooth(); x = 0.5 * width; y = 0.5 * height; } void draw() { background(20); float targetX = mouseX, targetY = mouseY; x += (targetX - x) * easing; y += (targetY - y) * easing; noStroke(); draw_a_UFO(x,y); println(targetX + " : " + x); }
说明:简易“飞碟”,由两个椭圆组成,够“简易”吧!
这样就一个傻乎乎的飞碟,看起来不够酷,制造它的魅影效果吧!
代码改进:(魅影效果)
float x, x0=0.0, x1=0.0, x2=0.0, x3=0.0, x4=0.0, x5=0.0, x6=0.0, y, y0=0.0, y1=0.0, y2=0.0, y3=0.0, y4=0.0, y5=0.0, y6=0.0; void positonsSet() { y6=y5; y5=y4; y4=y3; y3=y2; y2=y1; y1=y; x6=x5; x5=x4; x4=x3; x3=x2; x2=x1; x1=x; } //x,y是圆心坐标 float easing; float diameterWidth = 32.0, diameterHeight = 4.0; void draw_a_UFO(float x, float y, int c) { fill(c); ellipse(x,y,diameterWidth / 2,diameterHeight * 2.5); ellipse(x,y,diameterWidth,diameterHeight); } int colorSet = 250; int myColor; void colorChange() { myColor -= 33; fill(myColor); } void setup() { frameRate(10); size(720,404); smooth(); x = 0.5 * width; y = 0.5 * height; easing = 0.2; } void draw() { background(20); float targetX = mouseX, targetY = mouseY; x += (targetX - x) * easing; y += (targetY - y) * easing; noStroke(); positonsSet(); myColor = colorSet; draw_a_UFO(x0,y0,myColor); colorChange(); draw_a_UFO(x1,y1,myColor); colorChange(); draw_a_UFO(x2,y2,myColor); colorChange(); draw_a_UFO(x3,y3,myColor); colorChange(); draw_a_UFO(x4,y4,myColor); colorChange(); draw_a_UFO(x5,y5,myColor); colorChange(); draw_a_UFO(x6,y6,myColor); colorChange(); println(frameCount); //println(targetX + " : " + x); }还是没学到数组,搞得有些重复,以后再改进技术吧。
动画截图:
相关文章推荐
- Fibonacci数列与跳台阶问题
- HUD Average 5353模拟
- C++基础---函数的参数
- 我想要什么?我的目标。——过去的数据整理
- Windows下Nginx的启动、停止等命令&Nginx 配置多域名&windows下设置Nginx开机自动启动
- 工厂模式
- 多线程同步条件变量
- C++ 之 main函数的调用与被调用
- bash的环境配置
- hibernate 总结二
- Hibernate面试题 --- list和iterator方法的区别
- [Ubuntu下java开发环境搭建]Ubuntu14.04+jdk+myeclipse+tomcat及问题总结
- C语言中volatile关键字的作用
- UVa 725:Division(水题)
- 轻松python之文件专题-关于目录树的一些操作
- 轻松python之文件专题-关于目录树的一些操作
- 编译php5.6.1出错set --enable-opcache=no
- redis主从复制
- 【java基础】内存分析
- 【java基础】内存分析