试图获得点积的C#错误

时间:2017-04-27 16:06:40

标签: c# vector

我目前正在使用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'。

但是我还没有使用任何花车,而且我在程序的其他部分也使用了相同的功能。

由于 露

1 个答案:

答案 0 :(得分:3)

如果我们查看方法签名,我们会看到:

public static float Dot(Vector3 left, Vector3 right)

我们可以看到它需要两个Vector3个对象作为参数(你正在做)并返回一个float。但是,您尝试将此值分配给Vector3 dotProduct,这是错误的类型。因此,编译器必须尝试将float转换为Vector3以将其分配给dotProduct,这会产生您看到的错误。

要解决此问题,只需更改为:

float dotProduct = Vector3.Dot(normalise, hyp);