Nested Ellipses, and Ellipse Whirl

Next
 From:  bemfarmer
11695.1 
Nested Ellipses, and Ellipse Whirl may be constructed using the MoI centerEllipse factory, and some mathematics, in a node program.

https://benice-equation.blogspot.com/2019/01/nested-ellipses.html

The identity of benice shows up as C.J. Chen.
This person has multiple geometric art graphics posted, without showing the mathematics.

In certain orientations, the Ellipse Whirl generates the illusion of logarithmic spirals. There are similarities to the spiral arms of a galaxy. Clockwise or CounterClockwise rotation with respect to the milky way galaxy is possible.

For the mathematics:
Let bigEllipse be an ellipse centered at the origin, (0,0).
Initially, bigEllipse is non-rotating, and non-scaling, and has
it's first (semi-) axis, of length "a", on the x-axis.
It's second (semi-) axis, of length "b", is on the y-axis.
(It could also be considered to be in a rotating frame, in other art.)

nestedEllipse1 is the first ellipse nested inside bigEllipse, and is tangent to bigEllipse in two locations, (so long as it is smaller).
Its first semi-axis is of (variable) length "aPrime".
Its second semi-axis is of (variable) length "bPrime".
There can be many more (similar) ellipses inside. (recursive)
The ratio r = aPrime/a = bPrime/b.

The nested ellipses rotate counterclockwise, and scale, inside bigEllipse, maintaining two point tangency, so long as the nested ellipse is smaller than its circumscribed ellipse, (turn not equal to n*PI). The rotation angle of nestedEllipse1, with respect to bigEllipse, is called "tilt", or "t". When the "aPrime" axis overlays the "b" axis, "tilt" = PI/2 radians, and nestedEllipse1 is of minimum scale, and is "vertically" oriented. (tilt "t" acts as a parametric angle.)

The initial nest structure has nestedEllipse1 "vertical", and nestedEllipse2 "horizontal", etc.

nestedEllipse2 must rotate at twice the angular rate (omega) of nestedEllipse1, etc. (I think).

Link's to the mathematics:

https://math.stackexchange.com/questions/3773593/given-ellipse-of-axes-a-and-b-find-axes-of-tangential-and-concentric-ellips

https://math.stackexchange.com/questions/4059601/want-to-rotate-and-scale-an-ellipse-so-it-is-tangent-to-the-first-one

https://commons.wikimedia.org/wiki/File:Nested_Ellipses.png

https://www.mathisfunforum.com/viewtopic.php?id=24759

(I have not yet implemented the mathematics.)


- Brian

**********************************

Algorithm draft:

Use ellipse factory to draw "parent", bigEllipse, with "a" and "b".
Orient Line/Line, (make copies,) can easily create initial nest of multiple ellipses.
Let tilt angle "t" range from PI/2 to 3PI/2, based upon numpoints.
For each value of "t", calculate "delta" and "r".
For each "r" value, calculate aPrime and bPrime of child ellipse.
Using polar coordinates with angle "t", aPrime, and bPrime,
calculate the two axis points for current scaled nestedEllipse1, and
use the two points in the ellipse factory, to draw tilted, scaled nestedEllipse1.
Repeat for nestedEllipse2, using nestedEllipse1 as parent, instead of bigEllipse. Use 2*t and rotated start angle...
Planar color in bands?...
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11695.2 In reply to 11695.1 
NodeEditor and NodeEditor Plus have an Ellipse Center command, with an angle input. It's angle input is in degrees, with degrees internally converted to radians.
Ellipse Width, Height, and Angle, are converted to MoI Ellipse factory width point and height point, using the two radian values, with frame.evaluate(), and cosine and sine, (polar to cartesian).
So tilt angle would be in degrees.

A different Ellipse Center node, Ellipse CenterR node with radian angle inputs, might be desire-able.

- Brian

EDITED: 7 Apr by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11695.3 
A simple rotating ellipse in NodeEditor Plus.
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11695.4 
Here is a node which has the first nested ellipse rotating and scaling inside a stationary ellipse.

The node program is very hard to grasp. Changes do not do the expected. Quartz does not reset well.
There should be a master reset.
Starting at 90 degrees was not accomplished.
Rotating the stationary ellipse was not accomplished.
A second nesting ellipse was not accomplished.

- Brian

Ps, Adjusted tilt angle needs to feed into c input. ?

EDITED: 7 Apr by BEMFARMER


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  WN
11695.5 
Hi Brian.
Maybe some of this will come in handy.

Image Attachments:
Size: 97.4 KB, Downloaded: 4 times, Dimensions: 459x336px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11695.6 In reply to 11695.5 
Thank you WN.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  MO (MO_TE)
11695.7 
Hi Brian
quote:

Quartz does not reset well.

Check the attached "Event.js" file.
I added a reset input to "Quartz" node. Now, it resets the value as well.

quote:

A different Ellipse Center node, Ellipse CenterR node with radian angle inputs, might be desire-able.

You can use "Degree To Radian" node before angle input to convert Degree To Radian and vice versa.

I tried to make a nod without knowing the math.:)
Anyway, Hope that helps

Image Attachments:
Size: 56.5 KB, Downloaded: 3 times, Dimensions: 400x400px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11695.8 In reply to 11695.7 
Hi MO,

Thank you for the updated reset for Quartz.
Attaching the push button switch to reset input, with second terminal set to 1, and pushing the button, does the reset.

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11695.9 
Node of whirl with (only) 4 child ellipses, range 90 to 180 degrees.
Over 180 degrees, they expand beyond parent ellipse0.
Tilt angle should be Modulus 180.

I'm not happy with behavior of Quartz.

I might try a script.

The axis RATIO is the same for all child ellipses. Just apply it to the widths and heights of the parent of the child.
Widths and heights get swapped every generation.
Ellipse[i] is the parent of child[i+1]
Ellipse[0] could also rotate, as the child of ellipse[-1]
Ellipse[i,j] could use j as the scaling index...
The step angles of a scaling ellipse for child 2 is twice that of child 1.
The step angles of scaling child ellipse 3, is 3 times that of child 1.

- Brian

EDITED: 11 Apr by BEMFARMER


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  WN
11695.10 
imgbox
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11695.11 In reply to 11695.10 
Nice colors.
I tried trimming, but Planar did not like slivers of arcs.

So maybe just make each ellipse a different planar style?

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  WN
11695.12 In reply to 11695.11 
Hi Brian.

re :
> So maybe just make each ellipse a different planar style?

Yes, it is.

https://disk.yandex.ru/d/Edv9N_pxiNZH-A
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All