我试图在屏幕空间点 (x, y) 的二维等距网格中找到行、列
现在我几乎知道我需要做什么,即找到上图中红色向量的长度,然后将其与表示网格边界的向量的长度(由黑色向量表示)进行比较
现在我在数学堆栈交换中寻求帮助,以获得用于计算点 x,y 与黑色边界向量相比的平行向量的方程。链接在这里垂直/平行向量的长度 https://math.stackexchange.com/questions/51774/length-of-perpendicular-parallel-vectors
但我无法将其转换为函数
理想情况下,我需要足够的函数来从三组点(两个黑色向量末端的 x,y 和红色向量末端的点)获取两个红色向量的长度。
任何语言都可以,但最好是 javascript
您需要的是基础转换:
假设第一个黑色矢量的坐标是(x1,x2),第二个黑色矢量的坐标是(y1,y2)。
因此,找到到达点 (z1, z2) 的红色向量相当于求解以下线性系统:
x1*r1 + y1*r2 = z1
x2*r1 + y2*r2 = z2
或矩阵形式:
A x = b
/x1 y1\ |r1| = |z1|
\x2 y2/ |r2| |z2|
x = inverse(A)*b
例如,让黑色向量为 (2, 1) 和 (2, -1)。相应的矩阵A将是
2 2
1 -1
它的倒数将是
1/4 1/2
1/4 -1/2
因此,原始坐标中的点 (x, y) 将能够在替代基数中表示,通过以下公式:
(x, y) = (1/4 * x + 1/2 * y)*(2,1) + (1/4 * x -1/2 * y)*(2, -1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)