【发布时间】:2012-08-15 21:15:21
【问题描述】:
我需要使用三次 B 样条曲线,但在任何地方都找不到它的代码。 Java API 中唯一可用的曲线是QuadCurve2D、Path2D 和CubicCurve2D。我认为它们都是贝塞尔曲线,但我不确定。
如果您知道我在哪里可以找到三次 B 样条的代码,最好是扩展 Java Shape 类并支持 contains(Point p) for onMouseOver,请帮助。
【问题讨论】:
我需要使用三次 B 样条曲线,但在任何地方都找不到它的代码。 Java API 中唯一可用的曲线是QuadCurve2D、Path2D 和CubicCurve2D。我认为它们都是贝塞尔曲线,但我不确定。
如果您知道我在哪里可以找到三次 B 样条的代码,最好是扩展 Java Shape 类并支持 contains(Point p) for onMouseOver,请帮助。
【问题讨论】:
CubicCurve2D 是三次 B 样条。
但是,这可能是也可能不是您需要的,因为还有其他三次 B 样条。
也就是说,所有 CubicCurve2D 都是三次 B 样条。并非所有三次 B 样条都是 CubicCurve2D。
【讨论】:
Apache 有一个类来表示样条曲线:
http://jmeter.apache.org/api/org/apache/jmeter/visualizers/Spline3.html
但是,它不扩展 Shape 或支持您想要的。该类通过使用三次曲线插入节点之间的曲线来工作。对于 contains(Point P) 您也许可以使用 getPlots() 方法,将其结果与 P 的 x 和 y 值进行比较。
【讨论】: