Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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_Shape_Intersection - Fatal编程技术网

Java 两条直线的交点

Java 两条直线的交点,java,shape,intersection,Java,Shape,Intersection,我试图找到Line2D对象的点,或者只要回答它的交叉点。我现在得到的是定义行和这部分代码: class Linia { public java.awt.geom.Line2D.Double getLine() { return line; } public void setLine(java.awt.geom.Line2D.Double line) { this.line = line; } private java.awt

我试图找到
Line2D
对象的点,或者只要回答它的交叉点。我现在得到的是定义行和这部分代码:

class Linia {
    public java.awt.geom.Line2D.Double getLine() {
        return line;
    }
    public void setLine(java.awt.geom.Line2D.Double line) {
        this.line = line;
    }
    private java.awt.geom.Line2D.Double line;
}

public class Lines {

    public static java.awt.geom.Line2D.Double create(double x1, double y1,double x2, double y2) {
        java.awt.geom.Line2D.Double tmpL = new java.awt.geom.Line2D.Double();
        tmpL.x1 = x1;
        tmpL.y1 = y1;       
        tmpL.x2 = x2;
        tmpL.y2 = y2;
        return tmpL;    
    }
    public int getIle() { 
        return ile;
    }
    public void setIle(int k) {
        this.ile=ile;
    }
    private int ile;

    public static void main(String[] args) {
        int j, a = 0, z = 0, i, v = 0;

        Scanner f = new Scanner(System.in);
        j = f.nextInt();

        double pktx[] = new double[j];
        double pkty[] = new double[j];
        Lines ile1 = new Lines();
        ile1.setIle(Integer.valueOf(j));
        for (i = 0; i < j; i++) {
            Scanner h = new Scanner(System.in);
            pktx[i] = h.nextInt();
            Scanner o = new Scanner(System.in);
            pkty[i] = o.nextInt();
        }
        for (i = j - 1; i > 0; i--) {
            a=a+i;
        }
        Linia[] line = new Linia[a];
        for (v = 0; v < a; v++) line[v]=new Linia();
        v=0;
        for (z = 0; z < j; z++) {
            double d=pktx[z];
            double y=pkty[z];
            for (i = z + 1; i < j; i++) {

                double u = pktx[i];
                double t = pkty[i];
                line[v].setLine(create(Double.valueOf(d), Double.valueOf(y), Double.valueOf(u), Double.valueOf(t)));
                System.out.println("Linia " + v + " " + line[v].getLine().getBounds());
                v++;
            }
        }
        CTriangle count=new CTriangle();
        count.linesIntersect(line[3], line[5]);
    }
}    

public class CTriangle {

    public static boolean linesIntersect(Linia l1, Linia l2)    {
        System.out.println("Crossing");
        return false;
    }
}
Linia类{
public java.awt.geom.Line2D.Double getLine(){
回流线;
}
public void setLine(java.awt.geom.Line2D.Double line){
this.line=line;
}
私有java.awt.geom.Line2D.Double line;
}
公共类线路{
公共静态java.awt.geom.Line2D.Double创建(双x1、双y1、双x2、双y2){
java.awt.geom.Line2D.Double tmpL=new java.awt.geom.Line2D.Double();
tmpL.x1=x1;
tmpL.y1=y1;
tmpL.x2=x2;
tmpL.y2=y2;
返回tmpL;
}
public int getIle(){
返回ile;
}
公共无效设置文件(int k){
this.ile=ile;
}
私人文件;
公共静态void main(字符串[]args){
int j,a=0,z=0,i,v=0;
扫描器f=新扫描器(System.in);
j=f.nextInt();
双pktx[]=新双[j];
双倍pkty[]=新的双倍[j];
第1行=新行();
ile1.setIle(整数值(j));
对于(i=0;i0;i--){
a=a+i;
}
Linia[]行=新Linia[a];
对于(v=0;v
对于点1,1 4,1 4,4 1,4,不应出现交叉,但确实如此


我正在寻找显示交点的methode,因为method
LinesInIntersection
返回的是
false
true
。或者正确实现方法
linesintersection

有人告诉我可以使用get line in linesintersection方法。可能有问题吗?或者最好使用任何其他连接到line2d类的方法来查找交叉点。

在哪里可以找到代码来检查这些线是否相互交叉?我们可以帮助您解决特定问题,但我们不会为您编写代码。使用java.awt.geom.Line2D类,它已经有了一个交集测试方法以及一系列其他有用的方法。如果您需要计算,请查看源代码或谷歌在线交点检测,以查找有关数学的教程。