我应该使用哪个Point2D

bvd*_*vdb 5 java geometry javafx java-8

jdk8包含3个不同的Point2D类.

  • java.awt.geom.Point2D 在里面 rt.jar
  • javafx.geometry.Point2D 在里面 jfxrt.jar
  • com.sun.javafx.geom.Point2D 在里面 jfxrt.jar

Point2D我应该使用哪一堂课?

使用/应用程序:我想执行几何计算以确定点是否与线相交.(例如Line2D.contains(Point2D))

鉴于我还使用其他javafx功能(即也在javafx.*包中).我的第一个猜测是使用javafx.geometry.Point2D课程.但是,虽然此包确实包含一个Point2D类,但它不包含Line2D,但其他2个包确实包含一个Line2D包.

另一方面,我不想选择一个在不久的将来会被弃用的课程.

编辑:

也许一个小细节:Point2Dawtcom.sun包使用float的定义自己的观点,这需要大量的铸件.虽然javafx版本使用double,这是非常方便的,因为JavaFX的也喜欢double安排组件(例如getPrefWidth,getLayoutX...).

EDIT2:

实际上Line2D课程不是很大的帮助.该contains方法总是返回false.所以,看起来我必须编写自己的交叉方法.

Alm*_*asB 5

java.awt是JavaFX的不同UI工具包.不建议混合来自不同库的类,特别是如果您已经使用了JavaFX功能.

com.sun应该避免一切开始,因为它是私有API,并且无法保证它将在下一次更新中继续工作.

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