javascript - p5.Vector 不考虑角度模式
问题描述
我注意到在旋转向量时,即使在我angleMode
用DEGREES
. 此行为仅出现在使用new p5.Vector
语法声明的向量中,而 usingcreateVector
避免了它。
最小可重现示例:(粘贴到 p5 网络编辑器或 OpenProcessing 中)
function setup() {
createCanvas(400, 400)
translate(100, 100) // To see the effect more clearly
angleMode(DEGREES)
let v = new p5.Vector(1, 0)
line(0, 0, v.x * 50, v.y * 50)
v.rotate(HALF_PI)
line(0, 0, v.x * 50, v.y * 50)
}
请注意,旋转仍以弧度进行。如果您替换new p5.Vector
为,createVector
则问题消失。为什么是这样?
解决方案
由于数学上的函数类似sin()
被影响,没有充分的理由不p5.Vector.rotate
应该被影响。
但是,它并不打算像您那样构建一个向量。你应该使用createVector()
来创建一个向量。此函数不仅创建对象,而且设置所有内部属性,以便对象按预期运行。
此行为未直接解释为rotate()
,但记录为heading()
:
计算该向量的旋转角度(仅限 2D 向量)。
p5.Vectors
创建 usingcreateVector()
将考虑电流angleMode
,并相应地以弧度或度数给出角度。
推荐阅读
- azure - 通过 Azure 逻辑应用从 Azure 容器中最后修改的文件夹中获取 blob 内容
- javascript - 更新本地存储
- php - 如何在管理端 OpenCart 中打印严格的 url
- jenkins - Jenkinsfile 失败并出现错误@tmp/durable-df843027/script.sh: line 1: terraform: command not found
- npm - postcss src/tailwind.css -o src/styles.css 脚本错误
- html - 将 DIV 设置为根据宽度和高度使用最大平方空间
- vue.js - 在 Vue2.x 中编译之前如何获取组件代码?
- ios - 如何在 iOS 中拨打电话时隐藏 *DTMF* 号码
- c++ - 以下代码使用构造函数对字符串进行排序有什么问题?
- reactjs - 如何在 ReactTable V7 中管理 noDataComponent 或显示未找到的行