A Blooming Hibiscus in Polar Equations 🌺

Amy Wang
Beauty in Mathematics
8 min readMay 15, 2023
Figure 1: Final frame of the hibiscus animation superimposed on the reference image

In 2018, students at Concordia International School Shanghai created the first of the Honors Precalculus Polar Projects, a digital flower garden made up of polar equations. In 2023, we brought back a different set of these iconic flowers like never before as the first animated Polar Project. As the fruits (or flowers) of our labor bloomed, so did our appreciation for the beauty of mathematics. When this project started, I was on holiday in Thailand, and I knew exactly which flower I wanted to create: the hibiscus. This bright, tropical flower bloomed beautifully in my own front yard and in the gardens of Bangkok, and I could envision how beautiful its unfurling petals would be as an animation of polar equations.

Figure 2: Frame-by-frame time lapse reference

To begin, I found a reference image and a time lapse for the basis of the blooming pattern. Each frame would be reused for the growing and shrinking of the flower in the full animation.

Step 1: Starting with the final frame

I decided to work backwards by starting with the final fully bloomed frame, then basing each subsequent shrinking frame on the previous one. At first, I attempted to form the entire flower using only a few rose curves, but I realized that this method would not be able to produce a flower that perfectly fits the actual flower’s curves, folds, and indents. Instead, I made numerous rose curves to fit each curve and changed the angle range to form tiny segments. Once I created a “template” for the general shape, I was able to repeatedly copy and transform the equations to fit each line.

Figure 3: The first few equations of the final frame

I started with the largest general curves and used rose curves in the form r=asin2θ because most of the curves were wider and were a better fit for an even integer for n. By adding a slider to θ by inserting (θ+t), adjusting it to the desired angle, then removing the slider and inserting the angle, I efficiently rotated the curves to fit my flower. I found that adding a number to my equation changed the curve’s distance to the center, which helped with getting the equations in the exact position of the lines. Adjusting a in r=asin2θ had a similar effect, and I changed each of these for each equation until I reached a line I was satisfied with. Some of the equations here are radicals because I initially thought it might be easier to work with larger numbers, but I found that this could overcomplicate things and later stuck with my original equation form.

Step 2: Making the detailed ripples and folds

Figure 4: Detail work using rose curves with many petals

To create the small, detailed rips and ripples along the edges of the petals, I used rose curves with many petals and a large ratio between the scaling factor added to the end and a in r=asin2θ. Adjusting the angle allowed for placement of the wave, adjusting the amount of petals changed the width of the ripples, and changing the ratio of a and the number added affected the depth of the waves. After making each equation match a particular segment, I changed the range of the angle to cover only that segment.

I repeated this combined with the rose curves of larger petals several times, adjusting the variables accordingly.

Figure 5: Equations for several of the small curves along the petal edges

Step 3: Translating Equations

Throughout this process, one of my largest obstacles was not being able to translate a polar graph away from the origin. I searched online for a method to do this, but many sources told me that this was not possible. I asked around for help from my peers, and one of them sent me this awesome video: https://www.youtube.com/watch?v=6EFEpiwh8Wk.

As we learned in class, x = rcosθ, and y = rsinθ. So, the x and y coordinates of each point of a polar graph would be (rcosθ, rsinθ). Polar equations are defined as functions of r, so r in these coordinates can simply be replaced by the polar equation. For example, I translated my 20th equation shown above, r = 0.32cos20(θ+65)+7.48, by inserting it into coordinate form as ([0.32cos20(θ+65)+7.48]cosθ, [0.32cos20(θ+65)+7.48]sinθ]). To translate this, I simply added to the x and y coordinates. If I wanted to translate my graph 1 unit up and 1 unit to the right, it would be ([0.32cos20(θ+65)+7.48]cosθ+1, [0.32cos20(θ+65)+7.48]sinθ+1]). For this format to work for Desmos, it was critical to change θ to the variable t and adjust the range to 0≤t≤2.

Figure 6: Several equations using the translation method described

Step 4: Adding central radial details

Figure 7: Equations for the radial details at the center of the hibiscus

For some additional aesthetic appeal, I added these equations, which were essentially also rose curves but with the range of r adjusted so that the ends of the petals were cut off. I then turned down the opacity to make these lines a more subtle, natural detail. This created the effect of the color gradient and shadowed lines on the image and was later a useful source of movement for the animation.

Step 5: Continuing detail work on the petals

Figure 8: Further work on the petal details using both rose curves and parabolas

I continued making multiple equations to fit the detailed curves of the petals. By zooming in while adjusting the variables, I tried to make my equations extremely precise to the image. At this point, most of my equations were different iterations of the rose curve equation, and some were also parabolas in the form shown above.

Step 6: Adding texture

Figure 9: Equation for the dotted lines

I noticed that there were small, shadowy lines along the flower petals near the ends as well, so I decided to incorporate these to add texture. This set of dotted lines from the above rose curve equation also helped with making the animation more dynamic.

Step 6: Organizing into frames

Figure 10: Example of my folder system for Frame 1

I realized that I needed a way of keeping track of my equations, so I put all placed each frame in a separate folder with another folder for the center stamen equations. This is because I wanted to have the petals change more quickly than the center, so I only needed a new set of stamen equations for every other frame.

Step 7: Creating the center

Figure 11: Completed center for the first frame

The center of the flower was by far the most challenging part of the image.

I used a circle and straight lines for the rightmost area:

Then, for the orange pollen, I used 41 equations that were a combination of dimpled, cardioid, or convex limacons (in the form r=absinθ) along with some ellipses. Some examples are shown here:

For the left area, I used five parabolas, which could surprisingly be skewed to make one side steeper by making the equations that represent the x and y coordinates slightly different.

Step 8: Adjusting the equations for the next frame

After watching the time lapse a few times, I found that a hibiscus blooms by rotating counterclockwise and expanding. For every frame, I had to rotate every equation clockwise by a specific angle and shrink it down by a specific scale. This was extremely difficult at first, but through trial and error, I found exactly how much to add to what value. Many of my equations were in different formats or different types of polar equations, so this took much time and experimentation.

Figure 12: The second frame superimposed on the first with examples of altered equations

For the second frame, I focused too much on rotation and not enough on shrinking, which would take far too many frames to reach the smallest version.

Step 9: Repeating Step 8 with improvements

Figure 13: Improved changes for Frame 3 superimposed on Frame 2

For Frame 3, I realized that focusing on shrinking the graph made the animation process much more efficient. I subtracted 0.2 from each equation, with adjustments for different equation formats. I also adjusted the lines radiating from the center to suggest outward movement as the flower blooms.

Step 10: Adjusting the center

Figure 14: Center of Frame 3 superimposed on the center of Frames 1 and 2

I changed the center for this frame by translating each equation in the leftmost area down .095 units and right .26 units.

Step 11: Repeating this process until reaching desired size

Figure 14: All frames of the animation side-by-side

For each frame, I duplicated the folder before it and manually transformed each equation, slightly increasing the degree to which I rotated and shrunk the graph to simulate the rate at which the flower bloomed. I transformed the frames in which I changed the center by translating each equation 0.5 units to the right and 0.1 units down. For the last few frames, I also added a few parabolas and rose curves to the sides to give the illusion of the flower folding in as it closes.

My final product contains a total of 740 equations and eight frames; I hope it captures to some degree the beauty of this tropical flower and of project-based mathematics. Click below to watch this hibiscus bloom!

--

--