Zhen Cheng 0 Report post Posted December 18, 2020 Hi, I wonder if it is possible to come up with a F-spline curve that is exactly the same as a circle? Ideally this circle can be represented by 5 points with starting point and end_point overlapped with each other. The optimization I would like to do is to move p1 and p3 in x-direction, while the tangential direction at P1 and P3 is kept horizontal, and keep the area as constant. Is F-spline the best option to achieve this? Would you help me to set up a quick example? Best, Zhen Share this post Link to post Share on other sites
Zhen Cheng 0 Report post Posted December 20, 2020 I have tried a simpler approach as a first step: Use delta-shift to deform the circle into eclipse, however this seems to not work as I expected, as shown below, the circle is not deformed into an eclipse, it seems that not all the points on the circle are shifted. Could you help me to find out why this does not work? Share this post Link to post Share on other sites
Zhen Cheng 0 Report post Posted December 21, 2020 I figured this out, I need to change the delta_x delta_y definition to make it work properly. Share this post Link to post Share on other sites
Mr. Heinrich von Zadow 9 Report post Posted January 11, 2021 Hi Zhen, just a small addition in case someone else stumbles across your question. For an actual (perfect) circle you can not use an F-Spline. Behind the scenes an F-Spline is a B-Spline curve, optimized with respect to fairness and constrained at start, end, start-tanget, end-tangent, curvature, enclosed area, etc... That means, if you set the area as the area of a circle and also match the tangent at start and end you will get something that is really close to a circle, but not a perfect circle. For an actual (quarter of a) circle, you need a NURBS curve with 3 control points. The weight of the center point needs to be set to 0.5*sqrt(2). In order to keep the area constant while moving points 1 and 3 (in your picture), I suggest a delta shift and a brent (you can search the forum for nested optimization to see how the brent algorithm can be used to adjust the area to a certain target value). Cheers, Heinrich Share this post Link to post Share on other sites
Zhen Cheng 0 Report post Posted January 11, 2021 Thanks Heinrich for the comment, it is very useful information! Share this post Link to post Share on other sites