gpt4 book ai didi

java - 我应该使用哪个 Point2D

转载 作者:搜寻专家 更新时间:2023-10-31 20:01:11 26 4
gpt4 key购买 nike

jdk8 包含 3 个不同的 Point2D 类。

  • java.awt.geom.Point2Drt.jar
  • javafx.geometry.Point2Djfxrt.jar
  • com.sun.javafx.geom.Point2Djfxrt.jar

我应该使用哪个 Point2D 类?

用途/应用:我想进行几何计算以确定一个点是否与一条线相交。 (例如 Line2D.contains(Point2D))

考虑到我还使用了其他 javafx 功能(即也在 javafx.* 包中)。我的第一个猜测是使用javafx.geometry.Point2D。但是,虽然此包确实包含 Point2D 类,但它不包含 Line2D,但其他 2 个包包含 strong> 包含一个 Line2D 包。

另一方面,我不想选择在不久的将来会被弃用的类。

编辑:

也许是一个小细节: awtcom.sun 包的 Point2D 类使用 float 用于定义它们的点,这需要大量转换。虽然 javafx 版本使用 double,这非常方便,因为 javafx 也更喜欢 double 来排列组件(例如 getPrefWidth, getLayoutX, ...).

编辑2:

实际上 Line2D 类并没有多大帮助。 contains 方法总是返回 false。所以,看来我无论如何都必须编写自己的相交方法。

最佳答案

java.awt 是一个不同于 JavaFX 的 UI 工具包。不建议混合来自不同库的类,尤其是在您已经使用 JavaFX 功能的情况下。

应避免以 com.sun 开头的所有内容,因为它是私有(private) API,无法保证它会在下一次更新中继续工作。

在这种情况下,您最好的做法是使用 javafx.geometry.Point2D 并实现您自己的 Line2D。作为替代方案,您可以使用 JavaFX 场景图及其 Circle(半径为 0.5)和 Line(笔划宽度为 1)类来帮助您进行计算。

关于java - 我应该使用哪个 Point2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32475229/

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