我需要使用三次B样条曲线,但是无法在任何地方找到相应的代码。Java API中唯一可用的曲线是QuadCurve2D
、Path2D
和CubicCurve2D
。我认为它们都是贝塞尔曲线,但我不确定。
如果您知道哪里可以找到扩展Java Shape
类并支持contains(Point p)
以用于onMouseOver
的三次B样条曲线代码,请帮忙提供。
CubicCurve2D 是一种三次贝塞尔曲线。
然而,这可能并不是你所需要的,因为还有其他三次贝塞尔曲线。
也就是说,所有的 CubicCurve2D 都是三次贝塞尔曲线,但并非所有的三次贝塞尔曲线都是 CubicCurve2D。
Apache有一个类来表示样条曲线:
http://jmeter.apache.org/api/org/apache/jmeter/visualizers/Spline3.html
然而,它不扩展形状或支持您想要的内容。该类通过在节点之间插值曲线来工作。对于contains(Point P),您可以尝试使用getPlots()方法,将其结果与P的x和y值进行比较。