मैं एक जेएस प्रोजेक्ट के शुरुआती चरणों में हूं। एक आकार की स्थिति को छोड़कर अब तक सब ठीक हो रहा है। प्रश्न में आकार एक टील हीरा (वर्ग 45 डिग्री घूर्णन) है। मैं स्क्रीन पर वर्ग कोई समस्या नहीं मिल सकता है, लेकिन जब मैं जोड़ें:d3.js अजीब रोटेशन व्यवहार
.attr("transform", "rotate(45)")
वर्ग ठीक से घूमता है, लेकिन, स्क्रीन के बाएं हिस्से की ओर बदलाव इस तरह:
मुझे यकीन नहीं है कि ऐसा होने का क्या कारण है।
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
svg
.append("rect")
.attr("transform", "rotate(45)")
.attr("x", 250)
.attr("height", w/10)
.attr("width", w/10)
.attr("fill", "teal")
नोट:: यदि यह मदद करता है, यहाँ कोड है कि इस परिणाम का उत्पादन में से कुछ है, तो मैं "y" में विशेषता शब्दों में कहें, वर्ग पूरी तरह से गायब हो जाता है।
इसका कारण क्या है? क्या मैंने कुछ गलत किया है जिसे मैं नहीं देख सकता?
अहह आप बिल्कुल सही हैं। बहुत बहुत धन्यवाद। तो अब मुझे केंद्र में बिल्कुल सही आकार की आवश्यकता है।पायथागोरियन थर्म का उपयोग करके, मुझे क्रॉस सेक्शन की लंबाई मिली, और इसे 2 से विभाजित किया गया। उस समीकरण का परिणाम मैं अपने अनुवाद विवरण में वाई समन्वय के रूप में सेट करना चाहता हूं (पाठ्यक्रम के कैनवास ऊंचाई/2 से घटाया गया) । ऐसा लगता है जैसे मैं यहां चर का उपयोग नहीं कर सकता। क्या आप जानते हैं कि मैं यह कैसे कर सकता हूं? – 1080p
पाइथागोरियन का उपयोग करने की आवश्यकता नहीं है, जब तक कि आप सही क्रम में परिवर्तन कर रहे हों। मान लीजिए 'w' और 'h' कैनवास आकार हैं, और' rw' और 'rh' रेक्ट के आकार हैं, यह वही करना चाहिए जो आप पूछ रहे हैं:' .attr ("transform", "translate (" + (w/2) + "," + (एच/2) + ") घुमाएं (45) अनुवाद करें (" + (-आरडब्ल्यू/2) + "," + (-आरएच/2) + ")" 'दूसरे शब्दों में , पहले केंद्र में रेक्ट के ऊपरी बाएं स्थानांतरित करें, फिर 45 घुमाएं, फिर 45 डिग्री धुरी के साथ आधा चौड़ाई और आधा ऊंचाई की ओर जाएं - जो इसे केंद्रित करता है। यदि कैनवास 300x300 है और आयत 100x100 है: ' "अनुवाद (150,150) घूमना (45) अनुवाद (-50, -50)" ' – meetamit
दिलचस्प। मैंने पहले से ही अपने कोड में पायथागोरियन स्थापित किया है, लेकिन यदि आपकी विधि तेज है, तो मैं इसे स्वैप कर सकता हूं। सभी के लिए धन्यवाद मदद – 1080p