1
$\begingroup$

This is a general question regarding the problem of deforming or forcing some 3-dimensional mathematical shape to flow along some 3D curve or surface.

What kind of mathematics would one need to describe deforming any object around, say, a cylinder of radius $r$? Is there a general function for applying such a process to any shape, B-spline surface or polyhedra (not taking into account physical parameters such as elasticity)?

I know that the CAD software Rhino 3D has built-in functions "flow along curve" and "flow along surface":
http://www.youtube.com/watch?v=5WNNsJRot-Y (RhinoGuide)
http://www.youtube.com/watch?v=yiFFRbyV0DU (digitaltoolbox).

I am looking for some hints on how to achieve such operations were the target 3D curve is, say, a circle, without the use of CAD software. This could be tutorials online, math examples, DOIs for good papers on the subject, etc., etc.

I have tried myself once with flowing a function around a circle in 2D. For me it seemed like it was just a change of coordinates: You just express the coordinates in spherical coordinates, the x-cordinates will the flow around radially and the y-coordinate is the length of the arc. But I am looking for the general mapping solution.

2 Answers 2

1

The idea actually goes back to Bezier's thesis, though it's almost always attributed to Sederberg and Parry (Sederberg, Thomas and Parry, Scott. "Free Form Deformation of Solid Geometric Models." SIGGRAPH, Association of Computing Machinery. Volume 20, Number 4, 1986. 151-159). Google their original paper -- easy to find). Many CAD packages are essentially just implementing these old ideas. Intuitively, you embed your target object in a cube of jello, and deform the jello, and this carries your object along with it. Or, for bending deformations, you do essentially what you described -- "attach" your object to a straight line, and bend the line, which bends your object, too. As you say, it's not much more than a change of coordinates.

There's a huge amount of literature on the subject. Look up "free-form deformation". The wikipedia entry is pretty miserable, but the references it gives are quite good.

  • 0
    Well, a mathematical description of splines were named after him... that's credit after all. The Think3 website currently looks ... sad.2012-05-22
1

This is too long for a comment, so I'm posting an answer. There doesn't seem to be a definite answer, nor do I claim that what is suggested below is the most computationally optimal way of accomplishing the task, but it is the first thing that comes to mind:

Let $O$ be a 3D object that we wish to flow along a surface $S$. Let us assume that $S$ is the image under some map $F$ of a plane $\Pi$. For simplicity, we don't care about specific orientation of $O$. Foliate $O$ by copies of $\Pi$ along the direction perpendicular to $\Pi$, say along some line segment $l\subset O$. Then $O = O\bigcap \left[\cup_{p\in l}\Pi_p\right]$ where $\Pi_p$ is the plane passing through $p$. Now define $\widetilde{F}: \bigcup_{p\in l}\Pi_p \rightarrow\mathbb{R}^3$ by $\widetilde{F}(\pi, p) = (F(\pi), p)$, where $\pi$ is a point on $\Pi_p$. Then $\widetilde{O} := \widetilde{F}(O)$ is the object $O$ "flow along" the surface $S$. Notice in particular that $\widetilde{F}(\bigcup_{p\in l}\Pi_p) = \bigcup_{p\in l}S\times\{p\}$.

  • 1
    @Ole: No no, I am not *defining* $O$ that way; $O$ has already been defined. I am saying that $O$ sits inside of the three-dimensional space that is sliced up into planes $\Pi_p$. Basically, you can think of a foliation as a stack of layers. This is a formal way of saying that $O$ is immersed in a cube of jello, in bubba's words, where the cube is made up of layers, which I'm calling $\Pi_p$. Anyway, it's OK, no offense was taken on my part :).2012-05-23