Jump to content
  • 0
Sign in to follow this  
MullinRJ

Cubic spline control points

Question

Do you have a tech note describing the method used to plot a Cubic Spline curve when adjacent points on a Polyline are of type Cubic Vertex? If not, can you point me to any published article that describes the model you use? I have Bezier Vertices figured out, and Cubic Vertices figured out when adjacent points are Corner Vertices, but not a succession of Cubic Vertices.

I am trying to figure what implied control points are being used for the cubic formulae.

I guess, while I am asking, I'd also like the model used when Cubic Vertices are flanked by Bezier Vertices.

Thank you,

Raymond

Share this post


Link to post

5 answers to this question

Recommended Posts

  • 0
Guest

Raymond,

I've talked to a few people here and none of us quite understand your question.

Can you explain what you are trying to do in a more basic question?

Share this post


Link to post
  • 0

Hi Katie,

I am trying to emulate the curves that are generated on screen using the data points that compose a polyline. The points are the ones returned with GetPolylineVertex().

I can replicate Polyline curve segments when the Polyline points are Corner Vertices, Bezier Vertices, Arc Vertices, and Cubic Vertices (if the preceding and following points are Corner points). I am having trouble figuring out how you implement a Polyline curve when it is constructed of a series of Cubic Vertices. Any technical notes you have on its mathematical implementation would be appreciated.

Thank you,

Raymond

Share this post


Link to post
  • 0

Raymond, I would suggest doing some searches on "cubic splines" which are a series of of third-order polynomials where each point is a cubic vertex. Your particular problem is going to be developing boundary conditions on either sides of adjacent cubic verticies. Most of the mathematical developments of cubic splines develop "natural" splines by setting their boundary conditions to zero (very general description), you'll have to have non-zero boundary conditions when combining verticies of different types. Try this as a real general start:

http://mathworld.wolfram.com/CubicSpline.htm

Click on the first search result, it discusses the math behind cubic splines and should get you going in the right direction

And maybe take a look as this technical paper in PDF

www.library.cornell.edu/nr/bookfpdf/f3-3.pdf

You can also use the terms "numerical methods" to help you in your online search.

[ 06-07-2004, 05:53 PM: Message edited by: tom kyler ]

Share this post


Link to post
  • 0

Hi Tom,

Thanks for your response. I have been GOOGLE-ing a lot and reading everything I can find on cubic splines. Yes, finding the boundary conditions is a good part of the problem I am trying to solve.

In the case where the Polyline points are of types Bezier, Arc or Corner, all the end points and control points for a given Bezier segment of the curve can be ascertained by knowing three points; the Polyline point in question, the Polyline point preceding it and the Polyline point following it.

In the case where those three points are all of type Cubic Vertex, none of the control or end points are obvious, they are all virtual, meaning they must be calculated from the data at hand. I am hoping that NNA will provide a short paper on how they determine the end & control points used to implement the parametric equations for a Bezier (Cubic Spline) curve segment. How many polyline points before and after a cubic vertex are used to calculate the control points for each segment?

When Cubic polyline points are adjusted with the 2D reshape tool, virtual points appear on screen with associated tangent lines. These are the points I am trying to calculate. From my rough drafting, it appears that the virtual point would be equivalent to a Bezier Vertex point and the midpoints between this virtual point and preceding and following ones would correspond to the end points P0 & P3 in the Bezier curve segment model. These three points would be enough for me to calculate the curve between them.

I just need a little more help in seeing what I am missing.

Raymond

Share this post


Link to post
  • 0

Raymond, I see your point about VW showing "virtual" points when re-shaping the curve. It's been a real long time since I've developed curves by hand and I'm not 100% sure the purpose behind those virtual points. I suspect those are probably the non-zero boundary points that you need to calcualte. I might be wrong, so I'll look into it a bit and maybe two heads will come up with something.

Tom K

[ 06-08-2004, 07:58 AM: Message edited by: tom kyler ]

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

 

7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114

 

© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

×
×
  • Create New...