2016-11-25 7 views
5

क्या कुछ खुद को कॉपी करने और वक्र में मोड़ने के लिए कुछ स्प्राइट/ऑब्जेक्ट्स बनाना संभव है? मैं दिखाने के लिए मैं क्या मतलब है एक छवि बना दिया:ज्यामिति को वक्र का पालन कैसे करें?

road

यहाँ वक्र, संभवतः एक बेज़ियर पथ हरा है और ज्यामिति काले रंग में दिखाया गया है। मैं खुद को कॉपी करने के लिए स्प्राइट या ऑब्जेक्ट (बाईं तरफ) चाहता हूं और अंतिम प्रतिलिपि के साथ अपने चरम को मर्ज करना चाहता हूं, जबकि अंतिम दो शिखर वक्र का पालन करते हैं। यदि यह है, तो इसे कैसे करें? क्या इस तरह कुछ पर कोई दस्तावेज है? क्या आपने ऐसा कुछ किया है? कैसे?

संपादित करें: मैं नहीं चाहता कि स्प्राइट या ऑब्जेक्ट पथ के माध्यम से आगे बढ़ने के लिए, लेकिन खुद को डुप्लिकेट करें और अपनी प्रतियों के साथ विलय करें।

+0

संभावित डुप्लिकेट [स्प्राइट को बेजियर वक्र का पालन कैसे करें] (http://stackoverflow.com/questions/28341998/how-to-make-sprite-follow-bezier-curve) – ebby94

+0

क्या यह ट्रैक/सड़क? – Confused

उत्तर

2

हां, आप क्या करना चाहते हैं काम कर सकते हैं, और आपका चित्र दिखाता है कि यह काफी अच्छी तरह से कैसे काम करता है। स्यूडोकोड कुछ इस तरह दिखेगा:

curveLength = <length of entire curve>; 
tileLength = <length of 1 tile>; 
currentLength = 0; 
while (currentLength < curveLength) 
{ 
    currentTileLength = 0; 
    startPt = prevPt = calculateBezierAt(0.0); 
    for (t = delta; (t < 1) && (currentTileLength < tileLength); t += delta) // delta is up to you. I often use 1/100th 
    { 
     nextPt = calculateBezierAt(t); 
     distance = distanceBetween(prevPt, nextPt); 
     currentTileLength += distance; 
     currentLength += distance; 
     prevPt = nextPt; 
    } 
    endPt = prevPt; 
    // Calculate quad here 
} 

प्रत्येक ट्रैक्टर की गणना करने के लिए, आप प्रारंभ और अंत बिंदु पर perpendiculars उत्पन्न करने के लिए की जरूरत है। फिर आपके क्वाड के लिए 4 अंक हैं।

ध्यान दें कि मैंने केवल एक ही बेजियर मानकर चीजों को सरल बना दिया है। आम तौर पर, आप उनमें से कई को एक साथ जुड़े रहेंगे, इसलिए ऊपर से ऊपर की तुलना में उन पर पुन: प्रयास करना थोड़ा मुश्किल होगा, लेकिन यह बहुत कठिन नहीं होना चाहिए।

यह भी ध्यान रखें कि यदि आपके पास या तो बहुत तंग कोनों हैं या यदि वक्र खुद पर वापस आ जाता है तो आपको खराब दिखने वाले परिणाम मिल सकते हैं। संभवतः आप इससे बचेंगे यदि आपका वक्र उत्पन्न होता है, यद्यपि।

+0

क्या आप समझा सकते हैं कि विभिन्न चर का क्या अर्थ है? उदाहरण के लिए startPt या prevPt क्या है? टी क्या है? यह संभवतः स्पष्ट है, लेकिन शायद मैं इसे समझ नहीं सकता क्योंकि अंग्रेजी मेरी पहली भाषा नहीं है – Pietari

+0

इसके अलावा, आप वक्र पर विमान कैसे लगाते हैं? – Pietari

0

एससीएनशैप पर एक नज़र डालें, जो बेज़ीयर वक्र से एक दृश्यकिट ज्यामिति उत्पन्न करता है।

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