2013-05-03 21 views
0

我有一个问题,我不知道为什么。我需要添加到float3值。OpenCV:运算符“+”错误;此外

float3 a3 = cross(v1v2,intersection.pIntersect); 
a3.normalize(); 
float3 lambda1 = a3/(a1+a2+a3); 

error: no match for ‘operator/’ in ‘a3/math::operator+((* & math::operator+(((const math::vector)(& a3)))’

因此,它不可能+操作FLOAT3值。对于lambda,我有错误的类型吗?或者我想念一个操作?或者是normilize()方法改变了typ?

THX任何帮助:)

+1

你想做什么?用另一个矢量划分一个矢量并不会带来很大的意义 – TomD 2013-05-03 21:24:03

回答

1

我觉得你的问题是不是与运营商+运营商/

我现在不能检查代码,但似乎不能分割两个向量。

编辑1

看来,编译器的FLOAT3转化为数学::向量操作+。转换后,它找不到运算符/(float3,math :: vector)。

也许不包括“cutil_math.h”,虽然看起来好像this header is missing for newer SDKs

+0

哦,是的,问题是运算符/。另一部分应该是正确的a3是一个三角形(我有3),我正常化,然后我试图计算我的lambdas(lambda = Ai/SumOfA的)来计算我的重心坐标。但我认为问题是类型,但我不知道为什么 – vicR 2013-05-04 16:18:33