Going from G1 to G2

Hello, while reading through the official Level 2 Rhino Training Manual, I came across this image explaining the difference between G1 and G2 continuity. My question is how to create the G2 equivalent of a filleted G1curve as shown. Is there a method to convert one to the other? I have attempted this by creating two polylines and joining their endpoints using the BlendCrv command but the results are not the same as my G1 curve is not perfectly filleted. Is there something simple I am missing?

Hi Michael - I’m not quite sure what your question is, but a G2 curve between to other curves cannot have the same shape, exactly, as a G1 curve between the same two curves (otherwise why would we care? ). So the answer is no, there is no conversion that maintains the shape between the two, the best you can do is come pretty close - if you want your G2 curve to resemble an arc then adjust it to have as contant height a curvature graph as you can. At some point though, whatever benefits you’re looking for from the G2 curve may be lost.
What is the goal here, understanding, or a particular modeling goal?


1 Like

Hi Pascal - thank you for the response.

My goal is to understand the steps to go from the filleted G1 curve to the curvature continuous G2 curve in the photo to the left.

Hi Michael - I think it is more useful, probably, to think about them as two different curves - but the rest of that exercise should outline how they are different. The reason it is not 100% straightforward is that the G1 curve in this example is a true arc - that has a control point structure that is different enough from a G2 curve that is it hard to think of it as a conversion. In a more generic case, where the G1 curve is not a true arc, then in the case where the inputs curves are two lines, then to make a G1 curve into a G2 one with respect to the lines, you need to have at least 6 control points in the curve and at each end the three at the end must be in line with the input line at the end. Curvature at the end is determined by the locations and arrangement of the end three points in a curve. In the case of matching to a line, that curvature is exactly zero, and that is achieved by lining up the three points to the same line.

These are all G2 to the red lines:

When the red guys are not lines, the possible arrangements of the three end points are still infinite but much less straightforward - hence the Match command and EndBulge and the controls in BlendCrv.


This included the detail I think you’re looking for:

Thank you Pascal and John for your responses - it is most appreciated. I now see the error in my thought process.