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

 
 

bug #43966: Combining frenet in Nurbs and PolyLine

Submitted by:  francesco <francio>
Submitted on:  Sat 10 Jan 2015 11:29:50 AM UTC  
 
Category: PluginsSeverity: 3 - Normal
Item Group: Feature requestStatus: Works For Me
Privacy: PublicAssigned to: Benedict Verhegghe <bverheg>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission 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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>
Project 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>
Project AdministratorIn charge of this item.
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>
Project 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>
Project AdministratorIn charge of this item.
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>
Project Member

 

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

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 24 Feb 2015 03:37:18 PM UTCbverhegStatusNone=>Works For Me
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1