संपादित करें: तो मुझे एक समलम्बाकार रेखापुंज से संबंधित पृष्ठ मिला https://cse.taylor.edu/~btoll/s99/424/res/ucdavis/GraphicsNotes/Rasterizing-Polygons/Rasterizing-Polygons.html लेकिन मैं अभी भी यह पता लगाने की कोशिश कर रहा हूं अगर मैं सिर्फ किनारों को कर सकता हूं

मैं एक मनमाना एन-गॉन के कोनों के लिए अंक उत्पन्न करने की कोशिश कर रहा हूँ। जहाँ N एक शून्येतर धनात्मक पूर्णांक है। लेकिन मैं विभाजन और ट्रिगर की आवश्यकता के बिना इतनी कुशलता से करने की कोशिश कर रहा हूं। मैं सोच रहा हूं कि इसके लिए शायद कुछ प्रकार के ब्रेसेनहैम के प्रकार के एल्गोरिदम हैं लेकिन मुझे कुछ भी नहीं मिल रहा है।

स्टैक ओवरफ्लो पर मुझे केवल एक चीज मिल सकती है, लेकिन आंतरिक कोण वृद्धि 2 * π/एन का उपयोग करके पाई जाती है: कार्टेशियन निर्देशांकों में एक पक्षीय नियमित बहुभुज कैसे बनाएं?< /ए>

सी . में उस पृष्ठ से एल्गोरिदम यहां दिया गया था

float angle_increment = 2*PI / n_sides;
for(int i = 0; i < n_sides; ++i)
{
    float x = x_centre + radius * cos(i*angle_increment +start_angle);
    float y = y_centre + radius * sin(i*angle_increment +start_angle);
}

तो क्या बिना किसी विभाजन के ऐसा करना संभव है?

0
yosmo78 19 जुलाई 2020, 02:54

1 उत्तर

सबसे बढ़िया उत्तर

कोई समाधान नहीं है जो sin और cos को कॉल करने से बचता है, इसके अलावा उन्हें N के सभी उपयोगी मानों के लिए प्रीकंप्यूटिंग के अलावा। हालांकि, आपको N की परवाह किए बिना केवल एक बार गणना करने की आवश्यकता है। (बशर्ते आप जानते हों कि बहुभुज का केंद्र कहाँ है। केंद्र के निर्देशांकों का पता लगाने के लिए आपको दूसरी गणना की आवश्यकता हो सकती है।) प्रत्येक शीर्ष की गणना उसी रोटेशन मैट्रिक्स का उपयोग करके पिछले शीर्ष से की जा सकती है।

प्रीकंप्यूटेड मानों की लुकअप तालिका एक अनुचित समाधान नहीं है, क्योंकि N के कुछ पर्याप्त बड़े मूल्य पर बहुभुज एक सर्कल से अप्रभेद्य हो जाता है। तो आपको शायद केवल कुछ सौ मानों की लुकअप तालिका की आवश्यकता है।

1
rici 19 जुलाई 2020, 04:42