My son, the math whiz and student in a computer-science PHD program, reminds
me of the formula for this kind of progression. The total through "n"
rounds of adding successively increased integers (1 + 2 + 3 + ... + n)
comes to
n(n+1)
-------
2
(e.g., 1+2+3+4 is 4x5/2, or 10, like a set of bowling pins).
So the effective radius anywhere along the spiral is the formula above,
using the number of times it's gone around for "n", multiplied by the
initial interval value [1 in your example], and added to the starting radius
[4 in your example], or in Lisp terms:
(+ startradius (* firstinterval (/ (* n (1+ n)) 2.0)))
The "n" term can be fractional, so you can calculate the radius in as many
points as you want around each cycle, and use Polyline arc segments,
probably best calculated with the Second-point option, but after the first
one is built that way, tangent continuations would probably be fine. The
more segments you break it down to, the more precise will be the shape of
the spiral. For even greater "precision," maybe a Spline would be the thing
to do, since it can be closer to having a continuously-varying degree of
curvature, which a Polyline can only more roughly approximate.
I don't have time to develop that further at the moment, but I'll play with
it as I get a chance. Anyone else, feel free to give it a go.
[I still would like to know what's wrong with the routine I posted earlier
for an equally-spaced spiral, in its (while) section that should be feeding
it points -- it does the first two and then jumps to the end, without the
intermediate ones. Something like that will be needed for this, too, so if
anyone can point out why it's not working, that will help.]
--
Kent Cooper
wrote...
Kent, sorry for the confusion. When I showed the designer what your routine
would produce, he corrected his intent. The 'X" factor number should be
accumulated into the next arch's radius. My apologies.
The second one is the direction to go in: "if the radius of the first ring
intersection point is 4 meters, add plus 1 factor to each subsequent ring
making the next ring it 5 meters, next is 7 meters, next is 10 meters, etc"
The "X" factor number would have to be a decimal "Reals" number, input by
the user. The user would change to achieve a spiral they like.
Do you still something can be worked out?