Static vector field with classic arrows at every point on p5.js(P5.js上每个点都有经典箭头的静态向量场)
问题描述
目标是使用p5.js在2D或3D网格上的每个点上显示一个带有箭头的矢量场(即尖端带有人字形的线段)。原因是我看到了很多创造性的艺术使用它,而流场(?)看起来很酷,那么为什么不用它们来描述有或没有运动的物理矢量场。
我对p5.js一无所知,但快速的在线搜索显示,我可以生成从左上角开始的位置向量,以及将原点连接到其终点或从一个位置向量到另一个位置向量的线(段):
现在我想添加箭头,并将其美化。理想的、长期的完美将是3Blue1Brown:
推荐答案
我找到了一个答案here,例如,它允许在两点(或两个位置向量的末端)之间绘制一个向量:
或此处是从画布中心到鼠标尖端的矢量:
这里不只是一个向量,而是用上面的代码创建的实际(随机)向量场,调整了Daniel Shiffman的行here:
遗憾的是,左上角的原点使得用数学方式表示的物理场相当误导,传达了场逆时针流动的直觉:
最常见的具有负值和正值以及四个象限的笛卡尔坐标将显示该场实际上是如何顺时针流动的:
但这似乎有一个几乎很简单的修复方法,将计数器重置为从减去行数(和列数)到加上行数(和列数),而不是从零开始。此外,需要在y轴上反转递增值的方向,原点需要平移到画布的中间(height/2,height/2)
如果是方形的:
这篇关于P5.js上每个点都有经典箭头的静态向量场的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!