2012-04-10 4 views
5

Użycie , próbuję zastosować transformację do zestawu obiektów w sposób, który jest względny względem wszystkich obiektów w zestawie. Jednak otrzymuję efekt, że transformacja jest stosowana do każdego elementu osobno, niezależnie od innych obiektów w zestawie.Stosowanie transformacji do zestawu w Raphael.js

Na przykład: http://jsfiddle.net/tim_iles/VCca9/8/ - jeśli odkomentujesz ostatnią linię i uruchomisz kod, każdy z okręgów zostanie przeskalowany do 0,5x. Rzeczywistym efektem, który próbuję osiągnąć, jest skalowanie całego zestawu okręgów, więc ich względne odległości również są skalowane, co powinno umieścić wszystkie cztery wewnątrz obwiedni białego kwadratu.

Czy można to osiągnąć za pomocą wbudowanych narzędzi Raphaela?

Odpowiedz

11

Podczas skalowania pierwszym parametrem jest skala X. Jeśli nie podasz żadnych innych parametrów, użyje go jako skali Y i skaluje wokół środka obiektu.

Po przeskalowaniu prostokąta przeskalowano go wokół środka prostokąta. Jeśli chcesz, aby okręgi skalowały się wokół tego punktu, a nie ich centrów, powinieneś podać ten punkt.

Więc ostatnia linia może być set.transform("s0.5,0.5,100,100"); (100100 bycia ośrodkiem prostokąta skalowany)

Przynajmniej myślę, że to, co prosisz.