एक एपीकाइक्लोइड एक वक्र है जो एक वृत्त पर एक बिंदु बनाता है क्योंकि यह दूसरे सर्कल के चारों ओर घूमता है। एक साइक्लॉगन एक आकृति है जो एक नियमित बहुभुज पर एक बिंदु बनाता है क्योंकि यह एक विमान में घूमता है । एक एपिकैक्लोजन एक वक्र है जिसे एक नियमित बहुभुज पर एक बिंदु द्वारा पता लगाया जाता है क्योंकि यह दूसरे के चारों ओर घूमता है।
एक प्रोग्राम है जो एक epicyclogon दिया ड्रॉ लिखें r
, r1
, r2
, n1
, n2
:
r = number of clockwise revolutions rolling polygon makes around stationary polygon (any real number as limited by float values)
r1 = distance from center of stationary polygon to each of its vertices (positive real number)
r2 = distance from center of rolling polygon to each of its vertices (positive real number)
n1 = number of sides stationary polygon has (integer greater than 2)
n2 = number of sides rolling polygon has (integer greater than 2)
टिप्पणियाँ
- जब
r
नकारात्मक है तो रोलर को वामावर्त जाना चाहिए । - के लिए
r
, एक क्रांति तब होता है जब रेखा बाहर 360 डिग्री पूर्ण दो आकृतियों स्वीप centroids के जोड़ने। के सभी मूल्यों को शामिल करने के लिए इस धारणा का विस्तार किया जाता हैr
। (इसलिए एक चौथाई क्रांति में सेंट्रोइड्स को जोड़ने वाली रेखा 90 डिग्री बाहर निकल जाती है।) - इन तर्कों को कमांड लाइन से आना चाहिए या आपके कार्यक्रम को उनके लिए संकेत देना चाहिए (जैसे कि पायथन के साथ
input()
)। r1
औरr2
एक दूसरे के सापेक्ष हैं, छवि के आयाम नहीं। तो आप किसी भी संख्या में वास्तविक पिक्सेल होने के लिए एक "यूनिट" सेट कर सकते हैं।
बिंदु जिसे आपको ट्रेस करना चाहिए, वह रोलिंग आकार के कोने में से एक है। आकृतियों को इस शीर्ष के साथ शुरू होना चाहिए जो एक स्थिर शिखर और आसन्न दो पक्षों को छूता है:
सटीक शुरुआती कोने और स्थिर बहुभुज का कोण कोई फर्क नहीं पड़ता।
उत्पादन
आउटपुट को एक छवि पर जाना चाहिए जो कम से कम 600x600 पिक्सल (या कुछ चर आयाम 600 से सेट किया जा सकता है)। यह मापदंडों द्वारा निर्दिष्ट पूरे एपिकैक्लोजन वक्र को दिखाता है, जो छवि में अच्छी तरह से तैयार किया गया है।
रोलिंग और स्थिर बहुभुज भी खींचे जाने चाहिए (अंतिम स्थिति में रोलर के साथ)। दो आकृतियों और एपिकैक्लोजन को तीन अलग-अलग रंगों का होना चाहिए।
वहाँ भी करने के लिए एक आसान तरीका होना चाहिए नहीं बहुभुज (का एक परिवर्तन आकर्षित true
करने के लिए false
कोड suffices में)।
कृपया हमें कम से कम 2 आउटपुट चित्र दिखाएं। यदि आवश्यक हो तो उन्हें सिकोड़ना ठीक है।
स्कोरिंग
सबसे छोटा कोड जो वैध आउटपुट चित्र बनाता है वह जीतता है।
बोनस
- माइनस 50 बाइट्स यदि आउटपुट खींचा जा रहा वक्र का एक एनिमेटेड gif (या समान) है।
- माइनस 150 बाइट्स यदि आप करते हैं
n1
औरn2
मान 2 ले, जिससे कि आकार लंबाई की रेखा खंड बन2 * r1
(याr2
एक दूसरे के आसपास), "रोलिंग"।r
जब आप संभालते हैं जब 2 होते हैंn1
औरn2
आप पर निर्भर होते हैं क्योंकि सेंट्रोइड एक दूसरे के चारों ओर घूमते नहीं हैं तो वे अन्य मामलों में करते हैं। ("रोलिंग" बिल्कुल भी इसे संभालने के रूप में नहीं गिना जाता है।)
चूंकि मैं इस उपन्यास के विचार को अच्छी तरह से निष्पादित करने के लिए उत्सुक हूं (और यह वास्तव में एक काकवॉक नहीं है), मैं विजेता को 150 बाउंटी प्रतिनिधि देने जा रहा हूं । प्रतियोगिता उसी दिन समाप्त हो जाएगी जब बाउंटी रन आउट हो जाएगी।
विजेता को पुरस्कार नहीं दिया जाएगा यदि यह स्पष्ट है कि वे बस एक और सबमिशन से अधिकांश कोड को फिर से लिख रहे हैं।
लाइब्रेरी फ़ंक्शंस जो पहले से ही ऐसा करते हैं (यदि कोई हो) की अनुमति नहीं है।
नोट: यह मेरे बचे हुए सवालों से आया है कि कोई भी पोस्ट करने के लिए स्वतंत्र है। लेकिन अगर कोई और उन्हें पोस्ट नहीं करता है तो मुझे समय में एक अच्छा मौका मिलेगा। : पी