[Fun] Spiral animation
stéphane ducasse
ducasse at iam.unibe.ch
Sun Jun 20 14:50:26 UTC 2004
ok I saw.
I was comfused by your last line.
This would be a really nice screen saver
Stef
On 20 juin 04, at 16:11, Markus Gaelli wrote:
> Hi Stef,
>
>> Really cool.
> Thanks. :-)
>> I tried it in my last 3.7 image and it could not stopped strange.
> It takes a while, and I did not make it stoppable.
>
> I also thought it was stoppable when I roughly scanned the source that
> I programmed some while ago.
> I guess it should be, but the idea was to keep it simple to understand
> with the for-loop, and I do not know how to combine that with an early
> "button-exit".
>
> Cheers,
>
> Markus
>>
>> Stef
>> On 20 juin 04, at 14:34, Markus Gaelli wrote:
>>
>>> Hi folks,
>>>
>>> I thought some of you might like it...
>>> I stole the formula at the bottom from Wolframs New Kind of Science:
>>> http://www.wolframscience.com/nksonline/page-411?firstview=1
>>>
>>> For an online version of the spirals see:
>>> http://www.squeakland.org/project.jsp?http://www.emergent.de/pub/
>>> smalltalk/squeak/projects/galaxies.001.pr
>>>
>>> I find it amazing, that sunflowers (anAngle = 137.5 = 360*(1-phi)),
>>> yin-yang, and lots of other interesting :-/ symbols can be made out
>>> of this simple formula (which I made a bit more complex for
>>> aesthetic reasons).
>>>
>>> | backgroundColor leafSize anExtent aCanvas numbersOfLeafs
>>> someColors aPoint |
>>> backgroundColor _ Color blue muchDarker.
>>> leafSize _ 60 @ 60.
>>> anExtent _ Display extent y @ Display extent y.
>>> aCanvas _ BalloonCanvas extent: anExtent.
>>> numbersOfLeafs _ 200.
>>> someColors _ Color wheel: numbersOfLeafs.
>>> [Display fillColor: backgroundColor.
>>> 0
>>> to: 360
>>> by: 0.1
>>> do: [:anAngle |
>>> (1 to: numbersOfLeafs)
>>> do: [:anInt |
>>> aPoint _ (anInt sqrt * ((anInt * anAngle degreesToRadians) cos
>>> @ (anInt * anAngle degreesToRadians) sin) * (anExtent - leafSize /
>>> numbersOfLeafs sqrt) + (anExtent - leafSize) / 2) rounded.
>>> aCanvas
>>> fillOval: (aPoint extent: (leafSize * (numbersOfLeafs - anInt)
>>> / numbersOfLeafs) rounded)
>>> color: (someColors at: anInt)].
>>> aCanvas showAt: (Display center - (anExtent / 2)) rounded.
>>> aCanvas fillColor: backgroundColor].
>>> [Sensor anyButtonPressed] whileFalse.
>>> nil]
>>> ensure: [Display restore]
>>>
>>> Enjoy,
>>>
>>> Markus
>>>
>>>
>>
>>
>
>
More information about the Squeak-dev
mailing list
|