2012-04-10 13 views
5

Utilizzo di Raphael 2.0, Sto tentando di applicare una trasformazione a un insieme di oggetti in un modo relativo a tutti gli oggetti dell'insieme. Tuttavia, l'effetto che ottengo è che la trasformazione viene applicata a ciascun elemento singolarmente, indipendentemente dagli altri oggetti nel set.Applicazione di una trasformazione a un set in Raphael.js

Ad esempio: http://jsfiddle.net/tim_iles/VCca9/8/ - se annulli l'ultima riga ed esegui il codice, ogni cerchio viene ridimensionato a 0,5x. L'effetto effettivo che sto cercando di ottenere sarebbe quello di ridimensionare l'intero insieme di cerchi, in modo che anche le loro distanze relative vengano ridimensionate, il che dovrebbe collocarle tutte e quattro all'interno del riquadro di delimitazione del quadrato bianco.

C'è un modo per ottenere questo utilizzando gli strumenti incorporati di Raphael?

risposta

11

Quando si scala, il primo parametro è la scala X. Se non fornisci altri parametri, lo userà come scala Y e scala intorno al centro dell'oggetto.

Quando si ridimensiona il rettangolo, viene ridimensionato attorno al centro del rettangolo. Se vuoi che i cerchi si scalino attorno a quel punto, piuttosto che i loro centri, dovresti fornire quel punto.

Così l'ultima riga potrebbe essere set.transform("s0.5,0.5,100,100"); (100,100 essere al centro del rettangolo si scalato)

Almeno, credo che questo è quello che stai chiedendo.

Problemi correlati