[PHP+GD] roteren van een polygon/rechthoek

Pagina: 1
Acties:
  • 180 views

Acties:
  • 0 Henk 'm!

  • haling
  • Registratie: Mei 2003
  • Laatst online: 26-06 15:53
Dames, Heren,

Ik zou graag een rechthoek willen roteren om z'n as, maar omdat imagerotate() bijna nergens beschikbaar is en ik liever ook niet afhankelijk wil zijn van imagemagick zou ik graag met wiskunde de 4 hoeken van een polygon draaien, tenzij er een makkelijkere oplossing bestaat natuurlijk!

Mijn wiskunde gaat alleen niet verder dan wat optellen en vermenigvuldigen, dus ik ben aan het Google'en geslagen en heb daar een stukje C gevonden wat hetzelfde zou moeten doen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <math.h>

void Rotate(CPoint& point, CPoint origin, double angle)
{
    int X = origin.x + (int) ((point.x - origin.x) * cos(angle) -
        (point.y - origin.y) * sin(angle));
    int Y = origin.y + (int) ((point.x - origin.x) * sin(angle) +
        (point.y - origin.y) * cos(angle));
    point = CPoint(X, Y);
}

void Rotate(CPoint* points, int number, CPoint origin, double angle)
{
    for (int i = 0; i < number; i++)
        Rotate(points, origin, angle);
}


Nou ben ik dus op zoek naar zoiets als hierboven, maar dan voor php!


Wie kan mij hier mee helpen?


Alvast heel hartelijk bedankt!

Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
uhm.. wat is het wat je niet kan porten naar PHP? Volgens mij werkt vermenigvuldigen en optellen hetzelfde in php als in C.. ?

Acties:
  • 0 Henk 'm!

  • haling
  • Registratie: Mei 2003
  • Laatst online: 26-06 15:53
Orphix schreef op maandag 09 maart 2009 @ 21:57:
uhm.. wat is het wat je niet kan porten naar PHP? Volgens mij werkt vermenigvuldigen en optellen hetzelfde in php als in C.. ?
OK, ik sta met m'n handen vol toetsen (bek vol tanden).

Ik denk dat ik gewoon te lui ben om die C code te porten, maar het feit dat ik niet snap wat "int X = origin.x + (int) ((point.x - origin.x) * cos(angle) - (point.y - origin.y) * sin(angle));" doet/is maakt de drempel ook wat groter...

Ik ga maar eens zelf aan het klussen dan...

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
haling schreef op maandag 09 maart 2009 @ 22:02:
Ik denk dat ik gewoon te lui ben om die C code te porten
En dan staan wij allemaal te springen en te dringen om jou alsjeblieft de code te mogen voorkauwen :?
Sorry, maar zo werkt het hier niet. We verwachten hier wel een beetje eigen inzet en initiatief. Als je er nou niet uit komt om concrete redenen zijn we echt wel bereid te helpen, maar als je gewoon point blank vraagt of iemand het effe voor je wil doen (Kan iemand even...?) omdat je zelf te lui bent dan ga je over die schreef. Sorry.

Doe gewoon eens een poging en zie waar je strandt; open dan gerust een nieuw topic wanneer je concrete vragen hebt over het één of het ander, maar zorg dan dat je volgende keer wel onze Quickstart in acht neemt als je dat topic wil gaan openen ;)

Als je een beetje bekend bent met cos/sin (en dat hebben we ooit allemaal eens gehad op de middelbare school; ook al is het dan nog maar vaag aanwezig in je grijze massa) dan moet je met een beetje googlen/wiki-en al snel weer up-to-speed zijn over hoe het ook weer precies zat. Dan is het nog een kwestie van even achteruit zitten, bedenken wat bla.x en bla.y nou zou zijn (poeh, rocket science :P ) en dan ben je zo goed als klaar.

[ Voor 39% gewijzigd door RobIII op 09-03-2009 22:54 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.