2012-12-14 23 views
5

Hedefim, yeniden boyutlandırmak ve döndürmek için kullanabileceğiniz dört denetim noktasına sahip bir svg:ellipse kullanmaktır. Rotasyon dönüşümü elipsin kendisine uygulanmışsa, kodum iyi çalışır, ancak rotasyon svg:g kapsayıcısına uygulamak istiyorum, böylece denetim noktaları çok fazla kod olmaksızın eşzamanlı olarak döndürülür. Dönüşümü gruba uyguladığımda, dönüşün yanlış olduğunu düşünüyorum çünkü dönüştürülmüş koordinatları doğru olarak düşünmüyorum.Bir SVG: g grubunu döndürmek için sürükleyin: g grubu

Buraya bakın: açı dönme başlangıcına yakın bir pozitif ve negatif değer arasında ve fare 2pi rotasyon yalnızca şekil 1pi döndüğünü titrer o http://jsfiddle.net/PbKYn/3/

Bildirimi. (Ben <ellipse> değil <g> için rotasyon uygularsanız, rotasyon mükemmel olduğu için benim angleBetweenPoints fonksiyonu olsa yanlış olduğunu düşünmüyorum.)

yanlış yapıyorum? Thanks-

+0

Kulplardan birine tıklarsam ve tüm elipsi 360 ° döndürmeye çalışırsam, tüm yolu izlemiyorum. Bunu istiyor musun? – philipp

+0

@philipp no, 0 derece civarında titreşime ek olarak bu hatalardan biri. Tıklanan kontrol noktası, farenin altında kalmalıdır. – ZachB

cevap

11

http://jsfiddle.net/PbKYn/5/

düzeltme currentAngle + angleBetweenPoints (sözde) için angleBetweenPoints, dönme açısının değiştirilmesi edildi. Rotasyon uygulandıktan sonra koordinatların da angleBetweenPoints'un theta yerine dTheta verildiği şekilde dönüştürüldüğü anlamına gelir. Le iç çek.

+0

İyi bulmak! Unutma, kendi cevaplarını kabul edebilirsin. – Wex

+0

@Wex, kabul etmeyi unuttun :) – ZachB