2012-12-14 24 views
5

मेरा लक्ष्य एक svg:ellipse चार के साथ नियंत्रण बिंदुओं कि आप आकार और बारी बारी से करने का उपयोग कर सकते है। मेरे कोड ठीक काम करता है रोटेशन बदलने अगर अंडाकार ही लागू किया जाता है, लेकिन मैं इतना है कि नियंत्रण बिंदुओं अतिरिक्त कोड के बहुत सारे के बिना एक साथ बारी बारी से एक कंटेनर svg:g लिए रोटेशन लागू करना चाहते हैं। जब मैं समूह में परिवर्तन लागू करता हूं, तो घूर्णन गलत व्यवहार करता है क्योंकि मैं मानता हूं कि मैं परिवर्तित निर्देशांक के बारे में सोच नहीं रहा हूं।खींचें एक एसवीजी को घुमाने के लिए: जी समूह

यहाँ देखें: http://jsfiddle.net/PbKYn/3/

सूचना है कि कोण और रोटेशन की शुरुआत के निकट एक सकारात्मक और नकारात्मक मूल्य के बीच माउस के एक 2pi रोटेशन केवल आकार 1pi घूमता है कि flickers। (मुझे नहीं लगता कि हालांकि मेरे angleBetweenPoints समारोह गलत है, अगर मैं <ellipse> और नहीं <g> लिए रोटेशन लागू होते हैं, रोटेशन एकदम सही है क्योंकि।)

क्या मैं गलत कर रहा हूँ? धन्यवाद

+0

अगर मैं हैंडल में से एक पर क्लिक करें और 360 डिग्री के लिए पूरे अंडाकार मैं पूरी तरह से पालन नहीं करता है बारी बारी से करने का प्रयास करें। क्या आप यह चाहते हैं? – philipp

+0

@ फिलिप नो, यह 0 डिग्री के आसपास झिलमिलाहट के अलावा, बग में से एक है। क्लिक किए गए नियंत्रण बिंदु माउस के नीचे रहना चाहिए। – ZachB

उत्तर

11

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

ठीक currentAngle + angleBetweenPoints (छद्म) को angleBetweenPoints से रोटेशन कोण बदल रहा था। मुझे लगता है कि इसका मतलब है कि के बाद रोटेशन लागू किया जाता है, निर्देशांक भी तब्दील किया गया है कि इस तरह कि angleBetweenPoints गया था अनिवार्य रूप से theta के बजाय dTheta दे रही है। ले श्वास

+0

अच्छा खोज! याद रखें, आप अपने उत्तरों को स्वीकार कर सकते हैं। – Wex

+0

@Wex, धन्यवाद स्वीकार करने के लिए भूल गए :) – ZachB