Op dit moment ben ik met een project bezig in flex. Ik gebruik daar een implementatie van ObjectHandles. Er zit alleen een probleem bij het roteren van objecten. In de ObjectHandles kan je een movement constraint invoeren. Bij niet gedraaide objecten gaat dat goed. Bij gedraaide objecten neemt hij zijn oude waarde.
Aangezien ik niet de code van ObjectHandles wil aanpassen wil ik de movement constraint aanpassen. Dit wil ik doen door het uitrekenen van de bouding box van een gedraaid object. Dit doe ik door het berekenen van de nieuwe coördinaten. Voor de x gaat het goed maar de y waarde zit ik fout te denken en kom er niet uit.
De nieuwe lengte kan ik uitrekenen door de kleinste x en de grootste x van elkaar af te trekken.
Wat doe ik fout in mijn berekening voor y?
Aangezien ik niet de code van ObjectHandles wil aanpassen wil ik de movement constraint aanpassen. Dit wil ik doen door het uitrekenen van de bouding box van een gedraaid object. Dit doe ik door het berekenen van de nieuwe coördinaten. Voor de x gaat het goed maar de y waarde zit ik fout te denken en kom er niet uit.
code:
1
2
3
4
5
6
7
8
9
10
11
| var ra = oSelectedModel.rotation * Math.PI / 180; var p1x = oSelectedModel.x; var p2x = p1x + ( Math.cos(ra) * oSelectedModel.width); var p3x = p2x - ( Math.sin(ra) * oSelectedModel.height); var p4x = p1x - ( Math.sin(ra) * oSelectedModel.height); var p1y = oSelectedModel.y; var p2y = p1y + ( Math.sin(ra) * oSelectedModel.width); var p3y = p2y + ( Math.cos(ra) * oSelectedModel.height); var p4y = p1y - ( Math.cos(ra) * oSelectedModel.height); |
De nieuwe lengte kan ik uitrekenen door de kleinste x en de grootste x van elkaar af te trekken.
Wat doe ik fout in mijn berekening voor y?