线性代数转换矩阵 - 通过乘以矩阵从点到不同点



我只熟悉线性代数,但是我正在尝试在我正在处理的图形应用程序上进行十字准线。

I have a point: (x,y,z)

,我正在尝试将其提示:

(2/(x+y),(5y+z)/(2x+2y),3)

我一直在阅读,可以通过将我的观点乘以"转换矩阵"来完成我所需的观点。但是我不确定该怎么做。

有人知道如何将其转到该坐标吗?如果我能看到最终结果,我可以尝试扭转它。

您必须添加一个均匀的坐标 w ;那么您的方程式为form

[x,y,z,w = 1] * [4x4] matrix = [wx,wy,wz,w],在w的位置(应为(x y)),您可以达到预期的结果...

因此,您必须找到一个代表以下方程的矩阵M:

WX = 2, 
WY = 2.5y+0.5z, 
WZ = 3x+3y, 
W  = x+y

您不能直接执行此操作,因为只有线性转换(http://en.wikipedia.org/wiki/linear_map)可以由矩阵表示,并且您的转换不是线性的。您可以做的是重写您的转换如下:

(x,y,z,w)->( 2w , 5y/2+z/2 , 3x+3y )

现在是线性的,其各自的转换由以下方式给出:

T(x,y,z,w)=[0  0  0  2; 0  5/2  1/2  0; 3  3  0  0]*(x,y,z,w)

矩阵由[]和每一行之间的数字给出。如您所见,您现在有一个线性转换,该变换不给出所需的点,但是如果您在W = 1中评估转换,并且还将结果向量中的每个条目除以(x y),则有您要实现的结果。我的意思是,

(2/(x+y),(5y+z)/(2x+2y),3) = 
[1/(x+y)]*[0  0  0  2; 0  5/2  1/2  0; 3  3  0  0]*(x,y,z,w=1)

我希望这对您有用。

相关内容

  • 没有找到相关文章

最新更新