Tekenen met de Superformule

Er zijn twee manieren om grafische informatie vast te leggen: als een verzameling pixels en als een reeks wiskundige formules.
Pixel-verzamelingen, vaak raster of bitmap genoemd, worden het meest gebruikt. Het zijn de afbeeldingen die je maakt met een digitale camera, in raw-formaat, of als .jpg. Ook de oude .bmp-bestanden horen hierbij.
De afbeeldingen die met wiskundige formules worden gemaakt, worden vector genoemd. Veel clip-arts zijn vector-afbeeldingen. De vectoren beschrijven rechte en kromme lijnen (Bézier-krommen, splines), en oppervlakken als rechthoeken, cirkels, enz. Daarbij komen nog eigenschappen zoals kleur, lijndikte, gevuld oppervlak of alleen omtrek, enz. Samen vormen die losse objecten de figuur.

Vector-afbeeldingen hebben het voordeel dat je ze bijna onbeperkt kunt inzoomen zonder verlies aan scherpte. Raster-afbeeldingen worden blokkerig als je te ver inzoomt, zie de plaatjes hieronder. Inzoomen op een Vector-afbeelding is hetzelfde als het aanpassen van een paar getallen ("parameters") in de formules. Ook het verplaatsen van een deel van de figuur is een kwestie van het veranderen van parameters.

Er is op de markt behoorlijk goede gratis software voor het maken van vector-afbeeldingen te vinden. Voor de PC is er bijvoorbeeld Inkscape. Voor mobiele apparaten (Android) zou je eens kunnen kijken naar PainterSVG.

In een vector-tekenprogramma stel je zelf de objecten in. In moderne vector-tekenprogramma's merk je vrijwel niets van de onderliggende wiskunde. Door beschrijvende punten van objecten te verslepen, of door hele objecten te verplaatsen verandert de software de parameters.

Onder de motorkap
Een algemeen gebruikte formule is na lang wetenschappelijk onderzoek in 2003 gepubliceerd door de Belg Johan Gielis. Zijn werk borduurt voort op onder andere de Superellips.
De formule van Gielis werd al snel bekend als de "Superformule". Hij luidt:

De formule werkt in poolcoördinaten, dus met een straal r en een hoek φ. De oorsprong ligt op een punt (X,Y) dat de plaats van de figuur vastlegt op het canvas.
φ is de lopende variabele. De berekeningen worden gemaakt in stappen, 0 ≤ φ ≤ 2π (dus in radialen, niet in graden). Het begin- en eindpunt is op φ = 0 en φ = 2π. Die punten worden allebei berekend, zodat er een gesloten figuur ontstaat.
De stapgrootte hangt af van de gewenste resolutie. Voor elke waarde van φ wordt een straal berekend, waaruit de coördinaten op het canvas worden berekend. De zo gevonden beeldpunten worden onderling verbonden door rechte of gebogen lijnen (splines).

Parameter Betekenis
r(φ) 
Berekende straal vanuit de oorsprong naar het onderhanden beeldpunt, voor de beschouwde waarde van φ.
ƒ(φ) 
Functie van φ die zich gedraagt als schaalfactor waardoor r over de omtrek kan veranderen. Hiermee kun je bijvoorbeeld van een cirkel een soort ei maken. Voor eenvoudige figuren is ƒ(φ) = 1.
a 
Parameter voor de 'uitrekking' in horizontale (X-)richting.
b 
Parameter voor de 'uitrekking' in verticale (Y-)richting.
m 
Versterkingsfactor voor de hoek φ. Bepaalt het aantal "hoekpunten" van de figuur.
n1 
Macht voor het berekenen van de wortel in de noemer.
n2 
Macht voor de X-richting.
n3 
Macht voor de Y-richting.

De figuur hiernaast geeft een indruk van hoe verschillende waarden van m, n1, n2 en n3 de figuren beïnvloeden.
a en b zijn hier gelijk aan 1. Als je deze figuren met de applicatie wilt laten tekenen moet je ƒ(φ) vaak kleiner maken dan 1, anders past het niet op het canvas van de applicatie.

Getallen omzettenEen toepassing om hier zelf mee aan de slag te gaan is beschikbaar. Klik op de calculator hiernaast.
De code van deze applicatie is beschikbaar om zelf aan door te ontwikkelen, zie de download onderaan de pagina.

Bronnen:
Filip Leys; Tekenen met wiskundige formules. Oneindig scherpe kwaliteit met vector-afbeeldingen.
Computer!Totaal mei 2007, pag 66 e.v.
 
Wikipedia.org. Doorzoek de Nederlanstalige of Engelstalige tak van Wikipedia op "Superellips"

Downloaden:
 
Druk op de knop: Download deze code  File: voorb641.zip, 34 097 bytes.

 
terug

html-641; Laatste wijziging: 31 augustus 2021