Webdesign en webontwikkeling: Aurealis webdevelopment

Webdesign en webontwikkeling
waarbij kwaliteit en service centraal staan!

PHP, GD en ronde grafieken

  • 14 maart 2011,
  • nog geen reacties

PHP is een sterke programmeertaal, niet alleen voor het aanmaken van websites, maar ook voor écht programmeren kan je met PHP goed uit de voeten. Maar hier en daar is er toch een onvolkomenheid...

Onder PHP-programmeurs heeft PHP de (terechte!) reputatie niet altijd even consequent te zijn. Vooral in de stringfuncties (die het mogelijk maken teksten te manipuleren) wil het al eens fout lopen. Recent hebben we echter ontdekt dat het nog sterker kan.

Voor een bijzonder interessant project moesten er grafieken gemaakt worden. Omdat er geen bestaande bibliotheek was die aankon wat we nodig hadden moesten we zelf aan de slag.

Om deze grafieken te maken gebruikten we de combinatie PHP voor het programmeren, en GD voor het tekenen van de grafieken. Daarbij stuitten we echter op een bizarre eigenaardigheid.

De grafiek die we moesten hebben leek op een taart-grafiek, maar dan een waarbij de taart “bovenaan aangesneden” werd. Omdat het ronde grafieken waren hadden we dus sinussen en cosinussen nodig. Een mooie herhaling van de wiskunde van vroeger.

Maar dat draaide net iets moeilijker uit, want het blijkt dat elke functie zijn eigen invalshoek heeft als het over hoeken gaat:

  • voor de sinus- en cosinus-berekening rekenen we immers “tegen de klok in”, en bevindt het nulpunt zich rechts, op 3u dus. Zoals het hoort in de wiskunde.
  • de GD functie die in staat stelt een hoek te tekenen ziet het echter anders, en gaat er vanuit dat de hoeken “met de klok mee” getekend worden, en dat we rechts beginnen, ook op 3u. Op zich niet helemaal onlogisch (behalve het startpunt dan), als er geen verdere wiskunde bij te pas komt...
  • als we het echter nuchter bekijken, tekenen we de hoeken “met de klok mee”, en beginnen we op 12u (de taart bovenaan aansnijden). Het ware logischer geweest mocht de GD-functie op deze manier gewerkt hebben.

Als je met deze functies aan de slag moet om automatisch de juiste hoeken te laten berekenen, en daar bovenop ook nog een grafische weergave van data te leggen, dan kom je al snel in de problemen. Het heeft een hele tijd geduurd eer we het probleem helemaal uitgeklaard hadden, en de grafieken correct berekend en getekend werden, maar uiteindelijk mocht het resultaat gezien worden.

Moet je binnenkort ook met dit soort zaken aan de slag, hou er dan zeker goed je hoofd bij, en haal er zeker nog eens die grafische voorstelling van sinus, cosinus en tangens van de middelbare-school-wiskunde bij! Het zal je zeker vooruit helpen.

Terug naar alle artikels

Reacties

Er zijn nog geen reacties.

Reageer op dit bericht

Inladen...
Aurealis blogt!
Contacteer ons!

Sitemap

Aurealis Blogt!

Aurealis engageert zich!

Aurealis is lid van FeWeb, de federatie van webontwikkelaarsAurealis is lid van UNIZO, de unie van zelfstandige ondernemers