gpt4 book ai didi

java - 如何检查2条线段是否相交?

转载 作者:太空狗 更新时间:2023-10-29 22:50:12 25 4
gpt4 key购买 nike

如何检查 2 个线段 L1(p1,p2) 和 L2(p3,p4) 是否相互相交?我不需要交点,我只需要知道它们是否相交。由于我的应用程序计算了很多,我需要找到一个快速的解决方案。

谢谢

最佳答案

要测试两条线段是否相交,可以使用Java的2D API,具体是Line2D的方法.

Line2D line1 = new Line2D.Float(100, 100, 200, 200);
Line2D line2 = new Line2D.Float(150, 150, 150, 200);
boolean result = line2.intersectsLine(line1);
System.out.println(result); // => true

// Also check out linesIntersect() if you do not need to construct the line objects
// It will probably be faster due to putting less pressure on the garbage collector
// if running it in a loop
System.out.println(Line2D.linesIntersect(100,100,200,200,150,150,150,200));

如果您有兴趣了解代码的工作原理,以查看是否可以在您的特定域中使其更快,您可以查看 the code for OpenJDK implementation .但请记住,在优化之前始终进行剖析;它可能已经足够快了。

关于java - 如何检查2条线段是否相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16333650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com