Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建具有不同点的多个三角形_Java_Geometry - Fatal编程技术网

Java 创建具有不同点的多个三角形

Java 创建具有不同点的多个三角形,java,geometry,Java,Geometry,我有一个问题,在这方面 您将看到带有4个参数的pointInTriangle方法。我想知道,当我们有n个点时,如何将最后3个参数发送到此方法?在O(n^3)有什么方法可以做到这一点吗 请帮我谢谢你能改用吗?你的问题不太清楚,但假设你只想扩展检查n个点,我想你可以这样做: private static float sign(fPoint p1, fPoint p2, fPoint p3) { return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3

我有一个问题,在这方面

您将看到带有4个参数的
pointInTriangle
方法。我想知道,当我们有n个点时,如何将最后3个参数发送到此方法?在O(n^3)有什么方法可以做到这一点吗


请帮我谢谢

你能改用吗?

你的问题不太清楚,但假设你只想扩展检查n个点,我想你可以这样做:

private static float sign(fPoint p1, fPoint p2, fPoint p3)
{
    return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);
}

public static boolean[] pointsInTriangle(fPoint[] pt, fPoint v1, fPoint v2, fPoint v3)
{
    boolean b1, b2, b3;

    boolean[] ret = new boolean[pt.length];
    for (int i = 0; i < pt.length; i++)
    {
        b1 = sign(pt[i], v1, v2) < 0.0f;
        b2 = sign(pt[i], v2, v3) < 0.0f;
        b3 = sign(pt[i], v3, v1) < 0.0f;
        ret[i] = ((b1 == b2) && (b2 == b3)); 
    }
    return ret;
}
专用静态浮点符号(点p1、点p2、点p3)
{
返回(p1.x-p3.x)*(p2.y-p3.y)-(p2.x-p3.x)*(p1.y-p3.y);
}
公共静态布尔[]点三角形(fPoint[]pt,fPoint v1,fPoint v2,fPoint v3)
{
布尔b1,b2,b3;
布尔值[]ret=新布尔值[pt.长度];
对于(int i=0;i

顺便说一下,这是O(n)。

三角形的点不超过三(3)个。你想要一个函数来检查一个点是否在O(n^3)中的多边形内吗?@dacwe我想他的意思是检查n个点是否在三角形内,而不是检查一个点是否在n边多边形内。但是看看他的链接,最后三个参数是三角形点。@dacwe:是的,问题并不完全清楚。然而,由于标题和标签都提到了“三角形”,我相信他的意思是检查三角形中的n个点,而不是一个多边形中的一个点——但我当然可能错了。@user472221:也许你应该澄清这个问题,而不是我们试图找出你的真正意思:-)多边形是在O(n)中进行的,那好多了!:)