我目前正在使用openGL创建一个有碰撞的3D动画。我已经使用dot来多次获得点积,这些都已经工作正常,但是由于某些原因这会导致错误:
Vector3 normalise = (line2 - line1).Normalized();
Vector3 hyp = line2 - line1;
Vector3 dotProduct = Vector3.Dot(normalise, hyp); //this is where there is an error
它抛出的错误是:"无法显式转换类型' float'到' OpenTK.Vector3'。
但是我还没有使用任何花车,而且我在程序的其他部分也使用了相同的功能。
由于 露
答案 0 :(得分:3)
如果我们查看方法签名,我们会看到:
public static float Dot(Vector3 left, Vector3 right)
我们可以看到它需要两个Vector3
个对象作为参数(你正在做)并返回一个float
。但是,您尝试将此值分配给Vector3 dotProduct
,这是错误的类型。因此,编译器必须尝试将float
转换为Vector3
以将其分配给dotProduct
,这会产生您看到的错误。
要解决此问题,只需更改为:
float dotProduct = Vector3.Dot(normalise, hyp);