#tangencyBlend

2025-02-10
After we diligently sweep the remaining sections of the #scroll surface as described in https://pixelfed.social/p/Splines/794203007066866034, we get a complete surface ready for a quality check using a #surfaceAnalysis tool known as #environmentMapping.

Environment mapping is similar to #textureMapping that I used in https://pixelfed.social/p/Splines/790701780235593999 to give a marble look to a finished design, except that the purpose of an #environmentMap is not to create a finished design, but just to temporarily wrap an image on a surface to check it by "eye."

Here, we see the scroll surface with a polished gold environment map. For many uses, this surface is adequate. But if you are looking for perfection, you will not be able to ignore the #banding on the scroll surface, precisely at each interstitial location — There are 5 distinct bands from 6 #modulatingSpirals.

The banding is caused by our #tertiaryCurves which are #continuous over the scroll surface, but not #smooth. Mathematically speaking, the tertiary curves are not #continuouslyDifferentiable over their entire length. So, is it time for #quaternaryCurves and sweeping the scroll surface again, section by section?

There is an easier way to achieve a smooth patina on the scroll surface using #surfaceBlend. We used #curveBlend, specifically #tangencyBlend in https://pixelfed.social/p/Splines/791723063470910081 and https://pixelfed.social/p/Splines/791794072490907090, and #arcBlend in https://pixelfed.social/p/Splines/792616677005177924.

To build the scroll surface using surface blends, we keep only the front 5 sections and the rear five section intact. That is because these sections are the most definitionally rich and impart the whole surface its distinctive look.

We discard the bands immediately adjacent to the front and rear bands — ones that are 14 units and 7 units deep. Then we split the remaining middle band that is 25 units deep into 18 and 7, with the larger section biased toward the front.
2025-02-05
We saw how to create the #outerSpiral for the #IonicVolute in https://pixelfed.social/p/Splines/792511464365923534 and the #innerSpiral in https://pixelfed.social/p/Splines/792561721929860260.

Create a 270° circular arc of radius 1 part (24 units at 3x scale), spanning quadrants 2, 3, and 4 as shown in orange for the #eye of the volute. The arc for the eye intersects arc 12 of both inner spiral (shown in green) and outer spiral (shown in magenta).

Outer arc 12 makes a kink where it meets the orange arc as seen in the left diagram. Discard the magenta arc 12. We can do better.

Trim both the inner arc 12 (green) and the orange arc for the eye where they meet and discard the right portions of both.

Finally, perform an #arcBlend between points A and B as shown in the right diagram. Arc blend is a new operation we are seeing for the first time. Previously we used #tangencyBlend to blend various sections of the #primaryProfileCurves for the #shaft of an #IonicColumn [https://pixelfed.social/p/Splines/791723063470910081]. Arc blend also maintains tangency, but instead of generating freeform #NURBS curves for blending, it exclusively uses one or more sections of circular arcs to blend the ends.

Join all segments of the inner spiral, outer spiral, eye, blended arcs, and straight lines near the top-left of the volute to create a single #closedCurve.

Mark the center of the eye as the origin or base point for #moving, #scaling, and other #transformations, and don't forget to scale the entire design to 1/3 using a scaling factor that has a high degree of precision, e.g., 0.33333333.

I mentioned that Dürer's approximation of a #logarithmicSpiral is close, but doesn't fit perfectly. So far there's nothing that doesn't fit. The fit issue only comes up during #scroll construction.

This concludes the task of volute construction. Next, we will look at creating the 3-dimensional volute slab using this closed volute curve and adapt it for the recessed #channelGroove in the slab.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst