zoukankan      html  css  js  c++  java
  • [创意编码p5]魔法水环

    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();
        }
      }
    

    核心点, 定义一个空的向量,让一个上升的变量赋值给这个空的向量,然后限制这个向量的值,用当前的向量加上变量后的值,等于运动的值

  • 相关阅读:
    Oralce中备份,还原数据库
    Linux基础--目录了解以及安装后的优化
    PHP学习之旅——PHP环境搭建
    在虚拟机上安装Linux系统
    Hibernate 命名查询
    MyBatis入门案例
    MyBatis中关于别名typeAliases的设置
    SpingMvc中的异常处理
    无意之间发现的Servlet3.0新特性@WebServlet
    SpringMvc核心流程以及入门案例的搭建
  • 原文地址:https://www.cnblogs.com/fangdongdemao/p/14034290.html
Copyright © 2011-2022 走看看