Chapter1-运动

  • 效果演示:
  • 实现方法:
    • 构建Mover类:
    • draw函数中调用
    • 改变视效

效果演示:

实现方法:

这个实验主要参考的代码本色第一张最后一个例子, 其基本的原理是小球向着鼠标做加速运动。

构建Mover类:

Mover类中包含几个变量,location用来记录物体的位置信息,velocity为物体的运动速度,acceleration为物体运动的加速度。

class Mover
{PVector location;PVector velocity;PVector acceleration;float topspeed; Mover(){location =new PVector(random(width),random(height));velocity=new PVector(0,0);topspeed=4; }
}

在update函数中,取单位化小球位置和鼠标所在位置的向量作为加速度,进而对速度信息和位置信息进行更新。

void update(){PVector mouse =new PVector(mouseX,mouseY);PVector dir =PVector.sub(mouse,location);dir.normalize();dir.mult(0.5);velocity.add(dir);velocity.limit(topspeed);location.add(velocity);  }

在display函数中,在当前位置绘制小球。

void display(){stroke(0);fill(255);    ellipse(location.x,location.y,20,20);}

在display之前,要先进行边缘检测,判断小球是否运动到边界之外,当小球运动到边界时,让其从对侧边界按原速度运动。

void checkEdge(){if(location.x>width){location.x=0;}else if (location.x<0){location.x=width;}if(location.y>height){location.y=0;}else if (location.y<0){location.y=height;}}

draw函数中调用

随后在setup函数初始化100个小球,在update函数中让这100个小球试试运动。

void setup()
{background(255);for(int i=0;i<100;i++){movers[i]=new Mover();}
}
void draw()
{if(flag){for(Mover m : movers){m.update();m.checkEdge();m.display();}}
}

改变视效

 noStroke();fill(velocity.x*10+10,velocity.y*10+10);ellipse(location.x,location.y,velocity.x*10,velocity.y*10);

将小球的颜色和透明度与小球的位置以及速度相关联。既能看到在最开始看到的效果。

Chapter1-运动相关推荐

  1. 嵌入式操作系统风云录:历史演进与物联网未来Chapter1 第1章

    Chapter1 第1章 认识嵌入式操作系统 操作系统和物联网是今天大众熟悉的二个专业技术词汇.人们拿起智能手机就想到绿色小机器人-谷歌的Android操作系统:使用电脑的时候就想到了Windows操 ...

  2. Norlit OS —— 自制操作系统 第0章 热身运动

    0  热身运动 0.1         前言 开发操作系统是很多程序员的终极梦想,但是很多人认为这是不可能的,其实,只要有爱,什么事都能办到(但超能力这种事情的话估计只有学园都市[1]了吧). 操作系 ...

  3. 先进半导体材料与器件Chapter1

    Chapter1 先进半导体材料及器件基础 作者: Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo. ...

  4. 运动是性价比最高的投资

    小的时候,看到有人运动,不是很明白这是什么意思:长大后,随着知道的知识越来越多 .你就会发现,运动其实是性价比最高的投资:因为运动,可以让人变得越来越健康. 健康是你最大的财富,当你身体健康了,那么你 ...

  5. 自行车为什么前轮和后轮受到的摩擦力相反呢 自行车前轮后轮转动方向一样 自行车运动原理...

    后轮是主动轮是引擎(脚链子)给与的驱动使得后龙有向后传的趋势从而产生向前驱动的地面静摩擦(若地面完全光滑则后轮只会打滑不会再前进了). https://zhidao.baidu.com/questio ...

  6. 12,缓冲运动。匀速运动停止条件

    缓冲运动:iSpeed=(iTarget-oDiv.offsetLeft)/7;速度离目标点越远,速度越大,离目标点越近速度越小: 只支持1px是最小单位,没有0.5px.所以当iSpeed为小数时如 ...

  7. android 运动管理,使用 MotionLayout 管理运动和微件动画

    创建 MotionScene:在之前的 MotionLayout 示例中,app:layoutDescription 属性引用一个 MotionScene.MotionScene 是一个 XML 资源 ...

  8. php接入微信运动计步功能,运动计步,微信运动究竟靠不靠谱?

    很多朋友喜欢用微信运动,记录自己每天的运动步数,希望通过每天运动计步,达到减肥健身的效果.那么,微信运动到底靠谱吗 ? 能起到锻炼的效果吗 ? 在搞清这个问题之前,我们需要熟悉几个概念. 1.微信计步 ...

  9. python做运动控制_第一课:用Python操控小龟小车运动

    欢迎来到小龟的课堂,今天我们讲如何用小龟小车的车载Python控制小车运动. 如果小伙伴还不会使用小龟小车的Python编辑器的话,可以阅读这篇教程<如何使用小龟小车的Python编辑器> ...

  10. 获取this_小程序获取微信运动步数并集成echarts报表显示

    需求 现在运动计步非常的火,大家常用的计步工具一般有keep.咕咚.微信运动和其他移动设备等,本文是基于微信小程序获取用户的微信运动数据并可视化呈现出来. 先看一下最终实现效果: 微信运动规则 在开发 ...

最新文章

  1. 快速系统从零学习OpenCV 4路线图
  2. 查python的软件_[Python实战]Python制作天气查询软件
  3. GPT-3英文版的接口
  4. 在docker中安装RabbitMQ
  5. foreach循环符合就不往下走了_柴油发电机组冷却液循环故障解决方法
  6. JSON编码MySQL结果
  7. LS-DYNA材料模型
  8. 颜色值不透明度对应表(0%-100%)
  9. Deecamp笔记——点云目标跟踪 Open3D连续可视化
  10. IDM认证过程日志埋点说明
  11. 成为一名机器学习算法工程师,你需要这些必备技能
  12. [置顶] 施一公:优秀博士如何养成(全文) 清华大学演讲
  13. 记录下SPADE(GauGan)的学习心得
  14. Python:NBA球员得分数据排行爬虫
  15. springboot整合rabbitmq 消费者Consumer 手动进行ack确认
  16. 个人feedly订阅源分享
  17. 基于等价类的邮箱注册测试用例设计
  18. Win10打开老游戏血战上海滩
  19. webpack实现es6转换为es5
  20. java连接access数据库的三种方式以及远程连接

热门文章

  1. Python assert断言函数
  2. zeng studio的项目窗口PHP Explorer
  3. linux 在线扩inode,linux inode 详解 / 线上inode爆满解决方案
  4. 【帧中继网络运行OSPF的解决办法】
  5. MVC经典框架结构图
  6. SQL Server数据库知识点五
  7. Win10LTSC新建传入连接
  8. 2013年计算机考研试题,2009-2013年计算机组成考研原试题与答案
  9. 300元蓝牙无线耳机性价比之王,盘点三百元内最好的蓝牙耳机
  10. 【期末课设】python爬虫基础与可视化,使用python语言以及支持python语言的第三方技术实现爬虫功能,定向爬取网页的图片数据,并且实现批量自动命名分类下载。