2012-11-16 20 views
5

मैं केवल कैनवास पर खींचे गए आकार का एक हिस्सा दिखाना चाहता हूं। मेरे लाइन अनिवार्य रूप से यह है, और यह ठीक काम करता है:कैनवास, नकारात्मक निर्देशांक: क्या कैनवास शुरू करने वाले पथों को आकर्षित करना और जारी रखना बुरा है?

ctx.fillRect(xPosition, rectHeight - offsetV , rectWidth, rectHeight); 

दूसरा चर वहाँ नकारात्मक होने जा रहा है। तो, मेरा quesiton है: क्या यह कैनवास (नकारात्मक समन्वय के साथ) शुरू होता है और फिर कैनवास पर ड्राइंग जारी रखने के लिए एक रास्ता खींचने के लिए यह बुरा अभ्यास है (या मैं सड़क के नीचे त्रुटियों के लिए खुद को स्थापित कर रहा हूँ)।

+2

नहीं है, यह नहीं ' टी, जब तक आप स्क्रीन से _too_ कई चीजें नहीं खींच रहे हैं, जो संसाधनों का एक बड़ा अपशिष्ट होगा। – Shmiddty

+1

यदि आपको आश्चर्य है, तो अधिकांश कार्यान्वयन (? सभी?) इसे चित्रित करने से पहले आयत को क्लिप करेंगे, इसलिए लागत केवल इस क्लिप लागत है - कैनवास के बाहर एक सिंगल पिक्सेल नहीं खींचा जाता है -। – GameAlchemist

उत्तर

0

कोई समस्या नहीं है। यदि आपके पास ड्राइंग ऑब्जेक्ट की बहुत बड़ी संख्या है (जैसे गेम एल्केमिस्ट ने कहा) उस ऑब्जेक्ट को खींचने से रोकें। यदि आप एक्सप्लोर करने के लिए मानचित्र जैसे कैनवास का उपयोग करते हैं (ज़ूम आउट/सीटीएक्स में, संपूर्ण संदर्भ का अनुवाद करें) जिससे ड्रॉ को रोकने से क्लिप लागत अधिक हो सकती है। और इसकी जटिल ...

मेरे पास कैनवास से ड्राइंग ऑब्जेक्ट के साथ कुछ समय समाप्त हो गया है। यदि आप गणना और अन्य (कोई ड्राइंग) कर्मचारी परिचय ड्रा फ़ंक्शन डालते हैं तो आपको कोई समस्या हो सकती है।

महत्वपूर्ण:

बनाओ का कैनवास ड्रॉ समारोह कोड स्पष्ट (केवल आकर्षित कैनवास कोड)।

- यदि आपके ऐप को कॉन्स्ट अपडेट की आवश्यकता नहीं है तो केवल तभी कॉल कॉल करें जब इसकी आवश्यकता हो।

केवल (0,0, canvas.w, canvas.h) में

-Clear कैनवास

प्रयोग शैली केवल जब यह जरूरत है (स्ट्रोक, भरने, फ़ॉन्ट आदि)