Random Target Moving~
测试了一下用向量处理随机目标,还是挺有趣的,源码如下:
PVector p1, p2;
float gap = 10;
void setup() {
size(1920, 1080);
background(255);
p1 = new PVector(random(width), random(height));
p2 = new PVector(width/2, height/2);
smooth();
}
void draw() {
if (abs(p1.x-p2.x)<gap && abs(p1.y-p2.y)<gap) {
p2.set(random(width), random(height));
gap = random(5,50);
}
PVector dir = PVector.sub(p2, p1);
dir.normalize();
dir.mult(gap);
p1.add(dir);
strokeWeight(gap);
point(p1.x, p1.y);
}
还有很大改善的空间:
1、将random换成柏林噪音将会获得更加平滑的图案。
2、用数组来控制运行轨迹将会获取蛇形图案
Random Target Moving~的更多相关文章
- 酷酷的mapv
做城市热力图的时候无意浏览到mapv强大的功能.比如地图上路线的汇聚效果,如下 <!DOCTYPE html> <html> <head> <meta cha ...
- js制作烟花效果
<html> <head> <link type="text/css" rel="stylesheet" href="c ...
- Unity3d游戏场景优化杂谈(4)
首先介绍下draw call(这个东西越少你的游戏跑的越快): 在游戏中每一个被展示的独立的部分都被放在了一个特别的包中,我们称之为“描绘指令”(draw call),然后这个包传递到3D部分在屏幕上 ...
- 自己的JS框架--Amy框架。
这是我根据司徒正美<JavaScript框架设计>一书然后百度了很多东西之后自己写的一个JS框架,满足了司徒正美文中的种子模块部分,包含了命名空间.对象扩展.数组化.类型判断.选择器.多库 ...
- Generic Access Profile
转自:https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile Assigned numbe ...
- 从js的repeat方法谈js字符串与数组的扩展方法
js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...
- 关于frameset中指定区域回退的实现
指定区域(Frame)的回退,网上大都写的是用 window.parent.window.mainFrame.rightFrame.history.back();来进行回退,但是我这边就是不行,一直 ...
- html 布局;css3+jq 下拉菜单;table分页动态添加行;html5本地存储;简单易用的html框架
简单好用的html框架,预览图见最后: 源码: 1.页面布局使用table: table 嵌套 +iframe 布局: 2.下拉菜单为jq+css3 动画; css input 无边框,select下 ...
- <译>Selenium Python Bindings 3 - Navigating
当你想要通过webdriver导航到一个链接,正常的方式点是通过调用get方法: driver.get("http://www.google.com") Interacting w ...
随机推荐
- Locust性能测试_百度案例
一.安装: 1.Locust在PyPI上可用,可以通过pip或easy_install安装:pip install locustio 2.查看Locust可用选项:loc ...
- 【洛谷 P2483】 【模板】k短路([SDOI2010]魔法猪学院)(A*)
题目链接 优先队列bfs第一次出队就是最短路,那么显然第k次出队就是k短路 ?????????????????????????????? 书上写的 但是直接优先队列bfs会T,所以用A*优化就行,估价 ...
- 修复win10系统的引导
上周末时,在安装完linux后,进入win10系统后,想做个系统的引导菜单,用了easyBCD,后来一不小心删除了win10的引导菜单(window boot manager). 这样,就造成了我wi ...
- elementui switch 开关,点击确认按钮后在进行开关
<el-table-column label="上头条" align="center"> <template slot-scope=" ...
- uavcan扩展帧格式 zubax
zubax_gnss_1.0和zubax_gnss_2.0中使用的uavcan的两种不同封装方式.都是采用扩展帧29b帧类型 zubax_gnss_1.0 我的代码:https://github.co ...
- Python学习日记(六) 浅深copy
浅深copy即完全复制一份和部分复制一份 浅深copy在列表数据量较大时不建议使用,比较消耗内存资源 1.赋值运算 l1 = [1,'s',[1,2,3]] l2 = l1 print(id(l1), ...
- 部署python项目到linux服务器
最近用Python写了个外挂,需要部署到Linux环境的服务器上,由于之前本地开发时使用virtualenv,使用这个虚拟环境有个好处是项目中依赖的库不会是全局的,只在当前项目的目录下有效,因为我是M ...
- [ipsec][strongswan]strongswan源码分析--(零)引子
目录 strongswan sa 资料 编译 启动 进程信息 结构 架构图与插件 配置运行 传统配置方法 新的配置方法 其他配置方法 详细的配置文档 配置示例 用法 加密库 libgmp libcry ...
- git 如何忽略已经加入到版本控制的文件
增加 .gitignore 文件,里面添加需要忽略的文件(file_not_wanted): 执行命令 git rm -r --cached . 注意,最后的点.不要省略. 最后重新将所有文件添加 ...
- 【转】Java奇技淫巧-插件化注解处理API(Pluggable Annotation Processing API)
参考资料 JDK6的新特性之六:插入式注解处理API(Pluggable Annotation Processing API) Java Annotation Processing and Creat ...