Thick Bezier Curves in OpenGL
Asked Answered
S

1

1

I am writing a program in java using the jogl opengl bindings. I need to create a bezier curve that varies in thickness along the curve. So far I've only managed a thin bezier curve of single points. I'm pretty sure that this isnt going to be an easy thing to do, but i I have no idea where to even begin looking for the solution. If anyone could point me in the right direction as to how to solve this, it'd be greatly appreciated!

James

Schopenhauer answered 19/6, 2010 at 16:2 Comment(0)
I
4

Sample the curve and for each sample point compute two points, one on each side of the curve, along the normal line at the sample point and at a distance equal to the desired width at the sample point. This creates a polygon, which you draw as filled.

Ingamar answered 19/6, 2010 at 22:57 Comment(3)
Thanks for the reply! Just a few questions: - would this not create collisions on the inside of the curve? - Would it be possible to use a gradient along the curve with this method? - Would it be possible to use textures with this method? Thanks in advance :)Schopenhauer
If the width is small then no self collisions arise. Yes, you can use textures, as with any filled polygon.Ingamar
You will have collisions if your curve bends too tightly, based on the width of the curve (wider has more collisions). Slick2D has a Java implementation you can use to plot the points.Cyclothymia

© 2022 - 2024 — McMap. All rights reserved.