用于计算质心坐标的c#输入向量3

本文关键字:输入 向量 坐标 计算 用于 | 更新日期: 2023-09-27 18:07:10

我在学校学习一些关于质心坐标的东西,我发现下面的代码可以计算点是否在三角形中。但是我不知道如何改变代码,这样我就可以从标准输入输入点的值。我该怎么办?

public static bool PointInTriangle(ref Vector3 A, ref Vector3 B, ref Vector3 C, ref Vector3 P)
{
    // Prepare our barycentric variables
    Vector3 u = B - A;
    Vector3 v = C - A;
    Vector3 w = P - A;
    Vector3 vCrossW = Vector3.Cross(v, w);
    Vector3 vCrossU = Vector3.Cross(v, u);
    // Test sign of r
    if (Vector3.Dot(vCrossW, vCrossU) < 0)
         return false;
    Vector3 uCrossW = Vector3.Cross(u, w);
    Vector3 uCrossV = Vector3.Cross(u, v);
    // Test sign of t
    if (Vector3.Dot(uCrossW, uCrossV) < 0)
        return false;
    // At this piont, we know that r and t and both > 0
    float denom = uCrossV.Length;
    float r = vCrossW.Length / denom;
    float t = uCrossW.Length / denom;
    return (r <= 1 && t <= 1 && r + t <= 1);
}

用于计算质心坐标的c#输入向量3

您应该看看如何创建一个简单的应用程序的演练。之后,您可以看看这个解释如何提示输入参数的示例。完成后,可以使用以下命令调用函数:

bool isInTrigangle = MyClass.PointInTriangle(a, b, c, p);

我写MyClass是因为我不知道拥有这个静态方法的类的名称。我也没有将参数设置为ref,因为我认为您将函数的签名更改为:

public static bool PointInTriangle(Vector3 A, Vector3 B, Vector3 C, Vector3 P)