FITTING CURVES FROM ONE MODEL TO ANOTHER
A method and system for variational and iterative fitting of complex curves (such as Super Helix curves) to arbitrary regular parametric curves is described, called a curve fitting system. The curve fitting system uses data reduction and error-analysis often found in mesh decimation schemes as well as non-linear minimization. The curve fitting system takes full advantage of the large body of existing work on parametric curve modeling, while utilizing new and beneficial curve models for simulation.
1 . A method in a computer system for modeling substantially inextensible physical objects, the method comprising:
receiving an arbitrary curve that describes a substantially inextensible physical object;
modeling one or more properties of the physical object based on the received arbitrary curve;
converting the arbitrary curve into a super helix by subdividing the arbitrary curve into segments and fitting a segment of the super helix curve to each segment of the arbitrary curve; and
simulating a behavior of the physical object based on the super helix curve.
2 . The method of claim 1 wherein the physical object is a strand of hair.
3 . The method of claim 1 wherein the physical object is a blade of grass.
4 . The method of claim 1 wherein the subdividing is performed based on the variance of the curvature of the arbitrary curve.
5 . The method of claim 1 wherein fitting a segment comprises determining a fit that minimizes a segment error determined between the segment of the arbitrary curve and the segment of the super helix curve.
6 . The method of claim 1 wherein fitting a segment comprises determining an end condition of a previous segment.
7 . The method of claim 1 wherein converting further comprises reducing the number of segments in the super helix curve.
8 . The method of claim 1 wherein the inextensible physical object is constrained at one end.
9 . A computer system for converting a NURBS curve into a super helix curve, the system comprising:
a curve subdividing component configured to subdivide the NURBS curve into segments, wherein the NURBS curve represents a substantially inelastic physical object fixed to a second object at one end;
a segment fitting component configured to fit a segment of the super helix curve to a segment of the NURBS curve for each segment of the NURBS curve;
an error analysis component configured to determine an error of the fit of the super helix curve to the NURBS curve; and
a segment reducing component configured to remove one or more segments from the super helix curve to reduce the computational cost of simulating the super helix curve.
10 . The system of claim 9 wherein the physical object is human hair.
11 . The system of claim 9 wherein the physical object is a fiber of cloth.
12 . The system of claim 9 wherein the error analysis component determines the error of the fit by determining an error of the fit of each segment.
13 . The system of claim 9 wherein the curve subdividing component subdivides the NURBS curve based on an adaptive subdivision scheme.
14 . The system of claim 9 wherein the segment reducing component removes the segment that introduces a smallest resultant error.
15 . A method in a computer system for converting a first curve described by a first model into a second curve described by a second model, the method comprising:
subdividing the first curve into segments;
for each segment of the first curve, fitting a segment of the second curve to the first curve; and
determining a total error of the fit of the second curve to the first curve.
16 . The method of claim 15 wherein the subdividing is performed based on the variance of the curvature.
17 . The method of claim 15 wherein the subdividing is performed based on iterating from the root-to-tip of the first curve.
18 . The method of claim 15 wherein fitting a segment comprises determining a fit that minimizes a segment error determined between the segment of the first curve and the segment of the second curve.
19 . The method of claim 18 wherein the segment error is determined based on the difference in the first curve segment and the second curve segment.
20 . The method of claim 15 wherein fitting a segment comprises determining an end condition of a previous segment.
21 . The method of claim 15 wherein determining the total error comprises accumulating an error determined for each segment.
22 . The method of claim 15 including reducing the number of segments in the second curve.
23 . The method of claim 22 wherein reducing the number of segments comprises selecting a segment for removal based on determining an additional error introduced by removing each segment.
24 . The method of claim 23 including selecting the segment determined to introduce the least additional error.
25 . The method of claim 22 wherein reducing the number of segments comprises selecting a segment for removal based on the position of the segment in the second curve.
26 . The method of claim 25 wherein the position is selected based on whether the segment is near a root segment of the second curve.
27 . A computer system for converting a first curve described by a first model into a second curve described by a second model, the system comprising:
a curve subdividing component configured to subdivide the first curve into segments;
a segment fitting component configured to fit a segment of the second curve to a segment of the first curve for each segment of the first curve;
an error analysis component configured to determine an error of the fit of the second curve to the first curve; and
a segment reducing component configured to remove one or more segments from the second curve to reduce the computational cost of simulating the second curve.
28 . The system of claim 27 wherein the error analysis component determines the error of the fit by determining an error of the fit of each segment.
29 . The system of claim 27 wherein the curve subdividing component subdivides the first curve based on an adaptive subdivision scheme.
30 . The system of claim 27 wherein the segment reducing component removes the segment that introduces a smallest resultant error.
31 . A computer-readable storage medium encoded with instructions for controlling a computer system to model and simulate the behavior of a physical object, by a method comprising:
receiving a first curve described by a first method;
modeling one or more properties of the physical object based on the received first curve;
converting the first curve into a second curve described by a second method; and
simulating a behavior of the physical object based on the second curve.
32 . The computer-readable medium of claim 31 including rendering the simulated physical object to film.
33 . The computer-readable medium of claim 31 including rendering the simulated physical object to a nonvolatile storage device.
34 . The computer-readable medium of claim 31 wherein the first method is a method that describes a parametric NURBS curve and the second method is a method that describes a Super Helix curve.