PHP, GD en ronde grafieken
afbeelding, bibliotheek, GD, grafiek, PHP, webapplicatie, wiskundePHP 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.
Wie is Aurealis
Aurealis is een gedreven onderneming die zich specialiseert in webontwikkeling op maat: van de kleinste website tot een complexe applicatie om uw zaak te vereenvoudigen.
Dit alles wordt uitgewerkt met oog voor kwaliteit, en geleverd met een onberispelijke service, ook na de oplevering!
Onze diensten omvatten webdesign (ontwerpen en ontwikkelen van websites), maar vooral webontwikkeling (online software op maat - webapplicatie ontwikkeling) en ook grafisch werk (drukwerk, logo-ontwerp, storytelling, ...).
Geef ons gerust een seintje, onze service start hier!