p5.js map映射
2023/11/19 0:06:56
本文主要是介绍p5.js map映射,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文简介
p5.js
为开发者提供了很多有用的方法,这些方法实现起来可能不难,但却非常实用,能大大减少我们的开发时间。
本文将通过举例说明的方式来讲解 映射 map()
方法。
什么是映射
从 p5.js 文档 中可以看到对映射的说明
说明:从一个范围内映射一个数字去另一个范围。
好家伙,使用映射来说明映射。
还是用图来表示比较好懂~
绿线的长度是10,红线的长度是20。根据比例来计算,绿线上的点可以在红线上转换成对应的点。
map() 语法
除了普通的映射规则外,p5.js
的 map()
方法还提供了映射后最大值和最小值的限制。
语法如下:
map(value, start1, stop1, start2, stop2, [withinBounds])
value
: 数值型;需要转换的值start1
: 数值型;原始值的最小值stop1
: 数值型;原始值的最大值start2
: 数值型;映射后的最小值stop2
: 数值型;映射后的最大值withinBounds
: 布尔型;限制映射后的值。默认值是false
用个表格举例说明一下
我用到的公式是:let res = map(value, 0, 100, 0, 10, withinBounds)
value 原始值 | withinBounds 限制 | res 结果 |
---|---|---|
0 | true | 0 |
0 | false | 0 |
40 | true | 4 |
40 | false | 4 |
600 | true | 10 |
600 | false | 60 |
举个例子
根据鼠标当前位置所在的 x轴 方向的值动态修改画布灰度背景。
<script> function setup() { createCanvas(300, 200) } function draw() { let gray = map(mouseX, 0, windowWidth, 0, 255, true) background(gray) } </script>
再举个例子
根据当前鼠标所在位置x轴设置画布背景色的色调,根据鼠标所在位置y轴设置画布背景色的饱和度。
<script> function setup() { createCanvas(320, 200) // 创建画布 colorMode(HSB) // 设置颜色模式为 HSB } function draw() { let H = map(mouseX, 0, windowWidth, 0, 360, true) let S = map(mouseY, 0, windowHeight, 0, 100, true) background(H, S, 100) } </script>
这个例子中使用了几个 p5.js
提供的环境变量。
mouseX
和 mouseY
是鼠标当前所在坐标。
windowWidth
和 windowHeight
是当前浏览器窗口的宽高。
这4个环境变量写在 draw()
方法里可以根据设置好的帧率去捕捉变量的变化。
map()
映射结合3D图形也能玩出很多花样,在之后讲解3D图形的文章里我会结合 map()
举例。
这篇关于p5.js map映射的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-11-30页面的json数据浏览器无法访问,还有什么别的办法获取数据?
- 2023-11-22手撕Vue-Router-初始化路由信息
- 2023-11-20XML解析器:JAXP、DOM4J、Jsoup、JsoupXPath使用指南
- 2023-11-19p5.js 3D图形-立方体
- 2023-11-19js动画原理
- 2023-11-18vue项目nginx服务器部署
- 2023-11-11即将到来的 Vue 3 “Vapor Mode”
- 2023-11-02Python JSON 使用指南:解析和转换数据
- 2023-11-02p5.js 渐变填充的实现方式
- 2023-11-01Matter.js 插件:matter-wrap(世界是圆的)