2010-07-05 10 views
14

क्या पथ खींचते समय बनाए गए बिंदुओं को पढ़ने का कोई तरीका है? यह मुझे मूर्खतापूर्ण लगता है कि एक रास्ता पठनीय नहीं किया जा सकता है।सरणी के लिए एंड्रॉइड पथ - पथ पर बिंदु पढ़ें?

या क्या यह वर्तमान में उंगली की स्थिति को सरणी में लिखना बेहतर है?

धन्यवाद

उत्तर

32

आप किसी भी पथ से जितना चाहें उतने अंक पढ़ सकते हैं। उदाहरण कैसे पथ के मध्य से निर्देशांक को पढ़ने के लिए:

PathMeasure pm = new PathMeasure(myPath, false); 
    //coordinates will be here 
    float aCoordinates[] = {0f, 0f}; 

    //get coordinates of the middle point 
    pm.getPosTan(pm.getLength() * 0.5f, aCoordinates, null); 

आप पथ से किसी भी दूरी पारित कर सकते हैं बिंदु निर्देशांक प्राप्त करने के लिए शुरू करते हैं।

+0

pm.getPosTan (pm.getLength() * 0.5 एफ, एकोर्डिनेट्स, नल); बुलियन मूल्य देता है तो बिंदु बिंदु है ??? –

+4

@ झांसीकीरानी, ​​वह वहां साइस है: // निर्देशांक यहां होंगे। तो एक कॉर्डिनेट्स में। –

2

जहाँ तक मुझे पता है, मुझे लगता है कि आप पहले से नहीं मिल सकता अंक जोड़ा है, लेकिन आप पथ वर्ग की दुकान है कि एक सरणी में अंक बढ़ाने के लिए और अपने खुद के, ओवरराइड तरीके जोड़ बना सकते हैं, और उसके बाद या एक सूची या जो भी आप पसंद करते हैं।

+0

धन्यवाद, यही मैंने सोचा था। मुझे नहीं लगता कि कक्षा को विस्तारित करने से इसके बजाय अंक (x, y) को MyTouchEvent से एक ArrayList में जोड़ने से कुछ भी जोड़ा जाएगा। – Matt

-1

आपने अपने प्रश्न में उंगली की स्थिति का उल्लेख किया है। यदि आप गति घटनाओं का चित्रण और उपयोग कर रहे हैं, तो आप एक्स और वाई पदों को उस ईवेंट के दौरान एक ऐरेलिस्ट में जोड़ सकते हैं जहां सभी सूचकांक एक्स भी हैं और बाधाएं वाई हैं। मैंने इसे बनाया कुछ ड्राइंग ऐप्स में इस्तेमाल किया। जिस पथ को आप चाहते हैं उसे फिर से बनाने के लिए लूप और Path.lineTo() के लिए एक है।

यदि आपने किसी विशिष्ट रंग के साथ दृश्य को पथ खींचा है, तो रंग कहें। ब्लैक, आप बिटमैप.get पिक्सेल (...) का उपयोग कर सकते हैं और एक सरणी बना सकते हैं {x0, y0, x1, y1, .. ..xn, yn} की तरह

int i = 0; 
for(int y = 0; y < bitmap.getHeight(); y++){ 
    for(int x = 0; x < bitmap.getWidth(); x++){ 
     if(pixels[y*bitmap.getWidth()+x] == Color.BLACK){ 
      xy[i] = x; 
      i++; 
      xy[i] = y; 
      i++; 
     } 
    } 
} 

एक के लिए पाश सरणी xy अपने सभी निर्देशांक बंद आधारित है।

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