2009-05-29 14 views
7

यदि मैं सर्कल के केंद्र के पिक्सेल समन्वय को जानता हूं, तो सर्कल के त्रिज्या को जानता हूं, तो मैं सर्कल की परिधि पर कुछ डिग्री पर पिक्सेल मान कैसे पा सकता हूं , और लम्बवत कोण। असल में, मैं कई बार घड़ी के हाथ खींचने की कोशिश कर रहा हूं (1 o घड़ी, 2 o घड़ी आदि)एल्गोरिदम एक सर्कल की परिधि पर पिक्सेल निर्देशांक खोजने के लिए

उत्तर

18

h एक के रूप में घंटे होने दो फ़्लोटिंग पॉइंट नंबर (h=2.25 02:15, आदि होगा) 0 और 12. (cX,cY) केंद्र के निर्देशांक हैं। hLength और mLength घंटे और मिनट के हाथ की लंबाई हैं।

// Hour hand 
hAngle = 2.0*Pi*h/12.0; // 0..12 mapped to 0..2*Pi 
hX = cX + hLength * sin(hAngle); 
hY = cY - hLength * cos(hAngle); 

// Min hand 
mAngle = 2.0*Pi*h; // 0..1 mapped to 0..2*Pi, etc. 
mX = cX + mLength * sin(mAngle); 
mY = cY - mLength * cos(mAngle); 
3

यदि (x1, y1) परिधि पर एक बिंदु है और (x, y) है केंद्र, तो x1 = x + r * cos(angle) और y1 = y + r * sin(angle)

+0

ध्यान दें कि यह मानक "गणितीय" समन्वय प्रणाली मानता है, जहां वाई ऊपर की ओर बढ़ता है। ठेठ 2 डी कंप्यूटर ग्राफिक्स में, जो उलटा हुआ है (पिक्सेल के पते के साथ वाई बढ़ने के लिए)। – unwind

+0

यह केवल मूल में केंद्र के साथ एक सर्कल के लिए मान्य है। – ralphtheninja

+0

बस केंद्र के निर्देशांक जोड़ें। – Svante

0

अगर केंद्र x0, Y0 पर है, और निचले बाएं कोने में 0,0 iz, तो 1 बजे के x0 + r पर पाप (2π/3), Y0 + r है कॉस (2π/3)।

-1

एक्स निर्देशांक के लिए sin के साथ गणना की गई समन्वय को समन्वयित करने के लिए केंद्र से रेखाएं बनाएं और 0 निर्देशांक (0 हाथ की लंबाई से गुणा दोनों) के लिए cos

Wikipedia has more information on how sin and cos "work"

8

कहाँ चक्र के केंद्र (X0, Y0) है, त्रिज्या R है और x- अक्ष के साथ कोण थीटा है:

X1 = (R * cos theta) + X0 

और

Y1 = (R * sin theta) + Y0 
+0

इसे इतना ऊंचा नहीं किया जाना चाहिए। वह थेटा के मूल्य को नहीं जानता है। एरिक बैनविले द्वारा जवाब अधिक पूरा है। – jmucchiello

+0

@jmucchiello - सुनिश्चित नहीं है कि मैं आपको समझता हूं ... हमें एक एल्गोरिदम के लिए कहा गया था और मैंने औपचारिक मानकों के साथ एक समारोह का विवरण दिया था। इस स्तर पर, कोई भी थेटा के 'मूल्य' को नहीं जानता! यदि आपका मतलब है कि मैंने घड़ी के हाथों की गति के लिए स्केलिंग कारकों की गणना नहीं की है, और हर घंटे के लिए रेडियंस में कोण, आप बिल्कुल सही हैं मैंने नहीं किया। मेरे पास अपना कोड लिखने के लिए काम है! – avstrallen

+1

हाँ, मुझे लगता है कि मैंने एक में 2 प्रश्न पूछे हैं। आपका जवाब पहले भाग के लिए बिल्कुल सही है। धन्यवाद। – Surya

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

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