Кубическая кривая B-сплайна в Java

мне нужно использовать кубическую кривую B-сплайна, но не могу найти код для нее нигде. Единственными кривыми, доступными в Java API, являются QuadCurve2D, Path2D и CubicCurve2D. Я думаю, что все они Безье, но я не уверен в этом.

если вы знаете, где я могу найти код для кубического B-сплайна предпочтительно, который расширяет Java Shape класс и поддержка contains(Point p) на onMouseOver пожалуйста, помогите.

2 ответов


Apache имеет класс для представления сплайновых кривых:

http://jmeter.apache.org/api/org/apache/jmeter/visualizers/Spline3.html

однако он не расширяет форму или не поддерживает то, что вы хотите. Класс работает путем интерполяции кривой между узлами с помощью кубической кривой. Для contains (Point P) вы можете использовать метод getPlots (), сравнить его результаты со значениями x и y P.


CubicCurve2D-кубический B-сплайн.

однако это может быть или не быть тем, что вам нужно, поскольку есть другие кубические B-сплайны.

то есть все CubicCurve2Ds являются кубическими B-сплайнами. Не все кубические B-сплайны являются CubicCurve2Ds.