[创意编码p5]魔法水环
2020-11-25 10:04
99 查看
https://www.openprocessing.org/sketch/989004
圆的参数方程
x= radius * sin(i) y= radius * cos(i)
椭圆的参数方程
x= radius * sin(i) y= radius-90*cos(i);
画一个底盘的椭圆
function setup() { createCanvas(600, 600); // 设为 度数 angleMode(DEGREES) stroke("#f4f1de"); background(51); let radius = 200; //半径 for (let i = 0; i < 360; i += 1) { let ex = radius * sin(i); let ey = radius-90 * cos(i); ellipse(ex,ey,random(1,6)) } }
现在我们开始编写点向上移动,造成一个有魔方氛围的感觉
let ude=[]; function setup() { createCanvas(600, 600); // 设为 度数 angleMode(DEGREES) let radius = 200; //半径 for (let i = 0; i < 360; i += 1) { let ex = radius * sin(i); //1 => -1 =>1 let ey = radius-90 * cos(i);// ude[i] = new Ude(ex, ey); } } function draw() { background(51); stroke("#f4f1de"); translate(width/2,height/2); for (let i = 0,len = ude.length; i < len; i += 1) { ude[i].update(); ude[i].show(); } } class Ude{ constructor(ex,ey){ // 当前向量 this.pos = createVector(ex, ey); // 移动的向量 this.acc = createVector(0,-0.01); // 算出差值的向量 this.vel = createVector(0, 0); // limit 限制速度 this.topspeed = 1; // 随机的小椭圆直径 this.ellipsesize = random(1,6); } update(){ // y -0.01 * 向量random(2) 限制速度1 , // 最后的值加上差值 this.acc.mult(random(2)); this.vel.add(this.acc); this.vel.limit(this.topspeed); this.pos.add(this.vel) } show(){ ellipse(this.pos.x, this.pos.y, this.ellipsesize) noStroke(); } }
核心点, 定义一个空的向量,让一个上升的变量赋值给这个空的向量,然后限制这个向量的值,用当前的向量加上变量后的值,等于运动的值
相关文章推荐
- 2013金山西山居创意游戏程序挑战赛——初赛(1) 魔法串
- 互动媒体尝试之P5创意绘图板
- hdu 4545 魔法串 2013金山西山居创意游戏程序挑战赛——初赛(1)
- 2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串
- 2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串
- 有了这份应用程序创意清单,你今天就可以开始有趣的编码了!
- 纯shell程序实现base64编码
- Huffman 编码压缩算法
- 编码习惯
- Matthiasak经典创意标志
- java编码问题汇总
- JAVA及相关字符集编码问题研究分享
- 字符编码简介:ASCII,Unicode,UTF-8
- java 编码2
- 字符集和编码的区别
- 【c++】编码规范及相应的配置方法
- iOS-申请苹果开发者账号之邓白氏编码查询
- 4.2.4 Python特有编码
- vim编码方式的设置
- [分享]音乐+创意= 留连忘返