bugpyFormex - Bugs: bug #43966, Combining frenet in Nurbs and...

 
 

bug #43966: Combining frenet in Nurbs and PolyLine

Submitter:  francesco <francio>
Submitted:  Sat 10 Jan 2015 11:29:50 AM UTC
   
 
Category:  Plugins Severity:  3 - Normal
Item Group:  Feature request Status:  Works For Me
Privacy:  Public Assigned to:  bverheg
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Tue 24 Feb 2015 03:37:18 PM UTC, comment #6: 

If there is no further comment or request for change, I think we can close this report. Otherwise, feel free to reopen.

Benedict Verhegghe <bverheg>
Group administrator
Sat 10 Jan 2015 02:00:32 PM UTC, comment #5: 

For a PolyLine, curvature would be 0, except at the vertices, where it is infinite. And torsion would be undefined everywhere.

If you have a BezierSpline, you could use the toNurbs conversion and the nurbs.frenet to get curvature and torsion.
And if the frenet frame from nurbs.frenet does not please you, then you can use the approximate Curve.frenet (which we should probably rename).

Benedict Verhegghe <bverheg>
Group administrator
Sat 10 Jan 2015 01:48:37 PM UTC, comment #4: 

ok. can you give some references/hints to compute torsion and curvature on the PolyLine? I found the analytical formulas but how is with the discretization? how can I compute 2nd and 3rd derivative?

francesco <francio>
Group Member
Sat 10 Jan 2015 01:42:54 PM UTC, comment #3: 

No. Let's keep it as it is. Both are needed/useful.

Let's keep the mathematically correct frenet in NurbsCurve.
Improving it when/as possible.

And keep the approximate frenet in Curve.

Both may need improvement for closed curves.

Benedict Verhegghe <bverheg>
Group administrator
Sat 10 Jan 2015 01:29:55 PM UTC, comment #2: 

so actually we can just implement the satble frenet in Nurbs (as done with the compensation in Curve) , remove the current implementation of Curve.frenet and substitute it by converting to Nurbs and calling the Nurbs.frenet

francesco <francio>
Group Member
Sat 10 Jan 2015 12:50:46 PM UTC, comment #1: 

The Curve.frenet and nurbs.frenet compute different things, so I am not sure if it is easy or even wanted to combine these two.
Curve.frenet in fact computes an approximate (moving, interpolated) frenet frame based on a polyline approximation. nurbs.frenet on the other hand computes the mathematically correct frenet frame from the curve's derivatives.
Maybe we should rename Curve.frenet. But it was implemented before we had the nurbs.frenet and provides a useful practical approximation for the frenet frame.

At points where the curvature is zero or switches sign, the frenet frame indeed is undefined and can make jumps . It is however possible to compute a 'stable' movingFrenet on a NurbsCurve, by approximating it with a PolyLine. And it is possible to compute curvature and torsion on a Curve, by converting it to a NurbsCurve.

What we could probably do is add some refinements to the nurbs.frenet, e.g. using bishop frame and beta frame
(http://arxiv.org/pdf/1311.5857.pdf). And a NurbsCurve.frenet method should be added.

Benedict Verhegghe <bverheg>
Group administrator
Sat 10 Jan 2015 11:29:50 AM UTC, original submission:  

The frenet of Nurbs , allows to compute torsion and curvature, but does not compensate for flipped local axis, while the frenet of polyline perfoms the compensation , but does not return the torsion and the curvature.

I am not familiar with it and it wwill take me a while to figure out how to combine them. Gianluca and Benedict you implemented that part, could you do it or at least give hints on how can I do it?

francesco <francio>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by bverheg (Posted a comment)
  • -email is unavailable- added by francio (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-02-24 bverheg StatusNone Works For Me
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code