我无法理解这个概念。点和矢量之间的区别是什么,第三位需要1个点,第三个位置需要0个矢量?为什么2D点用{x,y,1}矩阵和用{x,y,0}矩阵表示的2D矢量表示?
0
A
回答
0
形式(x,y,1)表示homogeneous coordinates中的一个点。这就允许一个点只需通过乘以一个变换矩阵就可以进行旋转和平移。对于3D,这对计算机图形非常重要。 将向量表示为(x,y,0)的一个原因是添加到某个点的向量必须给出一个点,或者等价地,两个点之间的差值是一个向量。您可以通过搜索“齐次坐标”来查找大量资源,例如this one from MIT
0
对于齐次坐标,大小并不重要。下面的值表示相同点
{ x, y, 1 }
{ 2x, 2y, 2 }
从{a, b, c}
获取坐标你做
(x,y) = (a/c, b/c)
。
现在来表示一个方向,您使用一个退化点(与c=0
),使它没有x,y
坐标。
要想从{a, b, 0}
方向矢量你正常化的载体与
(ux,uy) = (a/√(a^2+b^2), b/√(a^2+b^2))
所以按照惯例,当同质标c
是非零值代表坐标,当c
为零它们代表方向。
此约定有助于限定点沿着一条线,给定线原点r={rx,ry,1}
并沿着距离t
的点的一个单位方向u={ux,uy,0}
是
q = r + u*t = (rx,ry,1) + (ux,uy,0)*t = (rx+ux*t, ry+uy*t, 1)
具有坐标(qx,qy) = (rx+ux*t, ry+uy*t)
。现在,如果矢量在第3个坐标中有一个值,则不会正确计算点q
。
注:这适用于2D以及用于3D(带有4个值)。
相关问题
- 1. 2d矩阵的xml表示
- 2. 2d矩阵到矢量
- 3. RDBMS中X乘Y矩阵
- 4. 什么是在2d矩阵中用Y零找到X的快速算法?
- 5. 拆分XY矩阵为X和Y
- 6. 将张量流矩阵的形状从(x,y,z)转换为(1,x,y,z)
- 7. Matlab矩阵索引2阵列(X,Y)
- 8. 通过Python创建X输入矩阵和y输出矢量
- 9. X,Y的2D图,Z阵列
- 10. 使用2d矩阵加矢量对3D矩阵进行索引
- 11. 如何将矢量表示为矩阵?
- 12. 为什么打印时矩阵(2d阵列)显示不正确
- 13. Matlab 3D矩阵变换第三维由2D矩阵矢量化
- 14. 将2D矩阵转换为3D矩阵?
- 15. 将3d矩阵重塑为2d矩阵
- 16. 乘以3D矩阵和2D矩阵CUDA
- 17. 表示值(x,y)与x._1,y._1
- 18. 排序2d点成矩阵
- 19. QStrings的2D矩阵
- 20. python matplotlib当X和Y是矩阵时X勾选位置
- 21. 矩阵每个元素表示矢量
- 22. 乘以2D矩阵的一维矩阵
- 23. Matlab的变换2D矩阵3D矩阵
- 24. 用矩阵表示矩阵作为使用Jama的阵列
- 25. 使用Javascript中的随机x和y坐标生成矩阵
- 26. 为什么graphicsDevice.viewport(x,y,z,w)使用x作为x和y?
- 27. 如何为numpy矩阵生成干净的x轴和y轴?
- 28. 情节2D矩阵
- 29. 查找2D矩阵
- 30. MATLAB将3D矩阵的高度向量评估为2D矩阵
这个问题似乎是题外话题,因为它是关于数学。 –