HELP!!! Bezier Deformation and Math...

Hi there!

I am using two Bezier patches to represent a right circular cylinder. These are bi-cubic patches (both planes look like half of the letter “O” extended into the screen) , so 16 control points on each patch. I was able to generate a right circular cylinder after tedious computations for the control points and render it in an OpenGL environment.

This is the situation… if i am given any point of collision with my cylinder, and the fact that this point WILL gradually extend into the cylinder, i need to produce deformation effects, perhaps not precise, but at least with some degree of realism.

Now, i can perform crude deformation by moving around the nearest single control point, but it is ridiculously crude. And it looks quite pathetic.

My problem is how to identify the necessary control points properly (for eg. shortest distance? how many points? etc), and more importantly, how exactly to modify the original control points to make the required deformation!

Any math formulas to calculate the magic numbers?? Any other ways i could go about doing that?

Furthermore, since the cylinder is coded using two of these confounded Bezier patches, which are then stiched together , if there is some deformation along the seams of cylinder, then both the patches need to be modified!

Any ideas? I am at a dead end here…