将坐标从一个三角形转换为具有不同视角的三角形

时间:2012-08-08 07:57:45

标签: objective-c xcode math

如何计算三角形2的D点?

我有三角形1的以下坐标: a(0,0)b(0.78)c(18,39)

点D位于三角形1中的(0,39)处。

现在我通过移动坐标b和c更改三角形的透视图。 形成的新三角形称为三角形2,坐标为: a(0,0)b(11,72)c(37,42)

因为你可以看到D点不在线的中间a< - > b因为观察/观察的变化。

我如何计算d点?我有三角形1和1的坐标abc。 2。

最好在程序代码中回答而不是使用数学符号,因为我不是阅读数学时的英雄:)

2 个答案:

答案 0 :(得分:1)

您需要使用原始三角坐标将点D转换为重心坐标,然后使用修改后的三角坐标将其转换回笛卡尔坐标。

这看起来像是对三角重心坐标的一个很好的介绍:http://blogs.msdn.com/b/rezanour/archive/2011/08/07/barycentric-coordinates-and-point-in-triangle-tests.aspx

此外,在维基百科文章“Barycentric coordinate system”的转换为重心坐标部分的末尾给出了将三角形点转换为重心坐标的显式公式。

答案 1 :(得分:0)

我想有更多方法可以计算从一个角度到另一个角度的坐标。

更多关于三角形的方法是由culebrón在这里写的:Transforming captured co-ordinates into screen co-ordinates

在同一个链接上,还有另一种方法,使用SVD并计算一个H矩阵,可用于将任何坐标从一个视角转换到另一个视角。我将使用这种方式,因为我可以在matlab中解决这个问题。 objective-c的下一步!我在objective-c中计算相同内容时遇到了一些麻烦。更多内容:calculate the V from A = USVt in objective-C with SVD from LAPACK in xcode

我想知道如何解决三角形的问题!我无法弄清楚在culebron的帖子中a1和a2是什么:https://stackoverflow.com/a/1690300/1568532宽度和高度对我来说都没有多大意义。

此外,我想知道如何根据3或4坐标计算三角形或四边形上的EYE视角。如果你知道对象的原始大小。 关于这个的任何想法?

当我搜索眼睛或相机的视角时。关于摄影有结果的负担。 为了计算这个,我需要用什么?也许是一些例子?