2012-12-01 4 views
14

कैनवास मैं पुनरावृत्ति कर रहा हूँ कुछ छवि डेटा तो जैसे एक canvas से खींचा:प्राप्त एक्स और वाई पिक्सेल का समन्वय करता है जब एचटीएमएल 5 से अधिक पुनरावृत्ति getImageData

var imageData = this.context.getImageData(0, 0, this.el.width, this.el.height); 
var data = imageData.data; 

for (var i = data.length; i >= 0; i -= 4) { 
    if (data[i + 3] > 0) { 
     data[i] = this.colour.R; 
     data[i + 1] = this.colour.G; 
     data[i + 2] = this.colour.B; 
    } 
} 

मैं वर्तमान एक्स गणना कैसे करते हैं और वाई पिक्सेल का समन्वय करता है कि मैं कर रहा हूँ पर?

उत्तर

11

एक साधारण अंकगणित अनुक्रम:

फूट डालो चौड़ाई द्वारा रैखिक स्थिति। यह आपका वाई-समन्वय है। चौड़ाई से वाई-समन्वय गुणा करें, और रैखिक स्थिति से उस मान घटाएं। परिणाम एक्स समन्वय है।

यह भी ध्यान दें, आपको रैखिक स्थिति को 4 से विभाजित करना होगा क्योंकि यह आरजीबीए है।

+0

Dude - उसके लिए धन्यवाद, मैं कुछ घंटों के लिए एक ईंट की दीवार के खिलाफ मेरे सिर पीटने किया गया है इसके साथ, अब – jcvandan

+0

सॉर्ट किया गया क्या आप एक उदाहरण प्रदान कर सकते हैं? मुझे नहीं लगता कि मैं इस अनुक्रम को पूरी तरह से समझता हूं। क्या नीचे दिए गए उत्तर किसी भी मौके से सही हैं? मैं एक पिक्सेल के एक्स और वाई निर्देशांक प्राप्त करने के लिए संघर्ष कर रहा हूं। कोई भी सहायताकाफी प्रशंसनीय होगी। – Awin

+0

मुझे लगता है कि मुझे सिर्फ यह जानने की जरूरत है कि "रैखिक स्थिति" का क्या अर्थ है। क्या यह डेटा सरणी में स्थिति है? या पिक्सेल स्थिति जो सूचकांक/4 है ?? – Awin

7

यह काम करना चाहिए

var x = (Math.floor(i/4) % 4); 
var y = Math.floor(Math.floor(i/this.el.width)/4); 
+1

काम नहीं कर रहा .. परीक्षण – user889030

18

सही किया और कोड के किस संस्करण का परीक्षण किया:

var x = (i/4) % this.el.width; 
var y = Math.floor((i/4)/this.el.width); 
+0

काम करता है .. परीक्षण – user889030

संबंधित मुद्दे