2009-02-03 16 views
39

Crayon Physics Deluxe एक वाणिज्यिक गेम है जो हाल ही में आया था। मैं किस बारे में बात कर रहा हूं इसका विचार पाने के लिए मुख्य लिंक पर वीडियो देखें।आप क्रेयॉन की तरह कैसे आकर्षित करते हैं?

यह आपको आकृतियों को आकर्षित करने और उचित भौतिकी के साथ प्रतिक्रिया करने की अनुमति देता है। लक्ष्य आपके द्वारा बनाए गए कॉन्ट्रैक्शन और आकार का उपयोग करके स्क्रीन पर एक गेंद को एक स्टार में ले जाना है।

जबकि गेम मूल रूप से लोकप्रिय Box2D Physics Engine के लिए एक रैपर है, इसमें एक विशेषता है कि मैं इस बारे में उत्सुक हूं कि इसे कैसे कार्यान्वित किया जाता है।

इसकी ड्राइंग बहुत एक क्रेयॉन की तरह दिखती है। आप क्रेयॉन के बनावट को देख सकते हैं और जैसे ही यह खींचता है, यह मोटाई और अंधेरे में भिन्न होता है जैसे कि एक वास्तविक क्रेयॉन ड्राइंग की तरह दिखता है।

alt text http://www.kloonigames.com/crayon/screenshots/crayon_small_01.jpgalt text http://www.kloonigames.com/crayon/screenshots/crayon_small_02.jpg

पृष्ठभूमि बनावट स्वतंत्र रूप से उपलब्ध here है।

alt text http://img267.imageshack.us/img267/1488/crayonmh7.png
बंद चित्रांकनी ड्राइंग के ऊपर - नोट अलग अंधेरे

एल्गोरिथ्म किस तरह का एक तरीका है कि एक क्रेयॉन तरह लग रहा है में उन पंक्तियों के रेंडर करने के लिए इस्तेमाल किया जाएगा? क्या यह एक साधारण बनावट है जो यादृच्छिक मोटाई और अंधेरे के साथ लागू होती है या क्या कुछ और चल रहा है?

+0

आपका अंतिम छवि लिंक टूट गया है लगता है। यदि आपके पास अभी भी मूल छवि है, तो कृपया इसे stack.imgur पर पुनः अपलोड करें, या छवि के बिना इसे काम करने के लिए बस अपना प्रश्न संपादित करें। धन्यवाद। –

उत्तर

21

मैं पढ़ (एक लंबे समय पहले) एक एल्गोरिथम का एक संक्षिप्त विवरण ऐसा करने के लिए याद रखें: लाइन के सामान्य रूप के लिए

  • , आप एक यादृच्छिक बिंदु पर दो में खंड विभाजित है, और इस बिंदु को अपनी स्थिति से थोड़ी दूर ले जाएं (बिंदु की दूरी पर चरम सीमा के आधार पर भिन्नता)। पुनरावर्ती/यादृच्छिक रूप से दोहराएं। इस तरह, आप लाइनें नहीं "सही" किसी दिए गए खंड आप कर सकते हैं "overshoot" एक छोटा सा के लिए (सीधी रेखा)

  • , एक सिरा या अन्य (या दोनों) का विस्तार करके कर रहे हैं। इस तरह, आपके पास सही जोड़ नहीं हैं। अगर मुझे अच्छी तरह याद है, तो सबसे अच्छा मूल चरम सीमाओं को विस्तारित करना था, लेकिन यदि आप उन्हें स्पष्ट रूप से विभाजित करना चाहते हैं तो आप उप-सेगमेंट के लिए ऐसा कर सकते हैं।

  • पैटर्न/डाक टिकट के साथ सीमा रेखा कैसे

  • वहाँ भी था (पहले ही उल्लेख किया) विभिन्न प्रस्थान और समाप्ति अस्पष्टता के साथ तैयार करने के लिए संभावना (ड्राइंग के अंत में कलम को रिहा करने की प्रवृत्ति की नकल करने की)

  • आप शुरुआत और लाइन के अंत में टिकट के लिए एक अलग आकार का उपयोग कर सकते हैं (ड्राइंग के अंत में कलम जारी करने की प्रवृत्ति की नकल करने के लिए)। इसी प्रभाव के लिए, आप चरम सीमा के लिए एक छोटी भिन्नता के साथ लाइन को दो बार भी खींच सकते हैं (इस मामले में अल्फा से सावधान रहें, क्योंकि लाइन दो बार खींची जाएगी)

  • अंतिम, दिए गए के लिए रेखा, आप पिछले संशोधनों को कई बार कर सकते हैं (यानी अलग-अलग बदलावों के साथ लाइन को दो बार खींचें): यदि वे कुछ गलतियां करते हैं तो मानव एक पंक्ति को दोहराने के लिए प्रवृत्त होते हैं।

सादर

7

आप छवि आप एक दोहरा टिकट पैटर्न देख सकते हैं झटका तो .. वहाँ शायद एक छोटे से वर्गीकरण है यह का उपयोग करता है के रूप में यह ख के लिए एक साथ लेकर चलता - यहां तक ​​कि उन्हें .. बारी बारी से कर सकते हैं

की ढुलमुल लाइन करना इतना मुश्किल नहीं हो सकता है। यादृच्छिक खंडों के एक गुच्छा में विभाजित करें, सीधे मार्ग से थोड़ी दूर स्थिति चुनें और splines आकर्षित करें।

4

आप गति पर अंधेरे का आधार बना सकते हैं। यह सिर्फ इस फ्रेम और अंतिम फ्रेम (पाइथागोरियन प्रमेय याद रखें) के बीच कर्सर द्वारा यात्रा की दूरी को माप रहा है और फिर जब आप स्क्रीन पर उस रेखा खंड को आकर्षित करने के लिए जाते हैं, तो आपके द्वारा मापा गया दूरी के अनुसार अल्फा (अस्पष्टता) समायोजित करें।

7

यहाँ एक paper गणित का एक बहुत का उपयोग करता है टकराव का एक मॉडल का उपयोग कर कागज पर मोम के बयान अनुकरण करने के लिए है। लेकिन मुझे लगता है कि आपकी सबसे अच्छी शर्त सिर्फ दोहराने वाले पैटर्न का उपयोग करना है, जैसा कि एक अन्य पाठक ने उल्लेख किया है, और दबाव के अनुसार अस्पष्टता को बदलता है।

अपूर्ण रेखा ड्राइंग भागों के लिए, मेरे पास blog entry है जो वर्णन करता है कि बेजियर वक्र का उपयोग करके इसे कैसे किया जाए।

+0

आपके ब्लॉग पोस्ट का लिंक मृत प्रतीत होता है। –

+0

मैंने लिंक अपडेट किया। –

0

मेरा मानना ​​है कि सबसे आसान तरीका यादृच्छिक अंधेरे (कुछ ग्रेडियेंट, शायद) के साथ बनावट का उपयोग करना होगा, और आकार को यादृच्छिक रूप से सेट करना होगा।

4

Mimicking Hand Drawn Pencil Lines नामक एक पेपर उपलब्ध है जो आपके बाद के कुछ हिस्सों को कवर करता है। यद्यपि यह एल्गोरिदम का एक बहुत विस्तृत दृश्य प्रस्तुत नहीं करता है, लेकिन लेखक अपने द्वारा उपयोग किए जाने वाले चरणों की मूल बातें शामिल करते हैं।

इस पेपर में उच्च स्तर के विवरण शामिल हैं कि उन्होंने लाइनों को कैसे उत्पन्न किया, साथ ही साथ वे लाइनों के लिए बनावट कैसे उत्पन्न करते हैं, और वे परिणाम प्राप्त करते हैं जो आप चाहते हैं।

3

rendering chart series to look like XKCD comics पर यह लेख परेशान करने वाली लाइनों के लिए एक एल्गोरिदम है जो प्रासंगिक हो सकता है। इसमें क्रेयॉन खींची गई रेखा के बनावट की गणना शामिल नहीं होती है, लेकिन यह एक मानवीय तरीके से एक सीधी रेखा को अपूर्ण बनाने के लिए एक दृष्टिकोण प्रदान करता है।

उदाहरण आउटपुट:

enter image description here

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