संपादित करें: मैंने उत्तर के साथ program अपडेट किया है और यह बहुत अच्छा काम करता है!पता लगाएं कि किसी जटिल बहुभुज के शिखर वाले सरणी में बिंदुओं का एक सेट दक्षिणावर्त या घुमावदार क्रम में परिभाषित किया गया था?
मैं program (इसे आज़माने के लिए स्वतंत्र महसूस करता हूं) बना रहा हूं जो उपयोगकर्ताओं को बहुभुज खींचने देता है जो इसे त्रिकोण बनाता है। वे चरम जोड़ने के लिए क्लिक कर सकते हैं और त्रिभुज में प्रवेश हिट कर सकते हैं। वैसे भी, एल्गोरिदम ठीक काम करता है जब तक कि मैं इसे बताता हूं कि अंक घड़ी के विपरीत या काउंटरक्लॉक वार में खींचे गए थे (अभी मैं इसे केवल घड़ी के बहुभुज के साथ काम करने के लिए सेट कर चुका हूं)। मैं इसे दिनों के लिए समझने की कोशिश कर रहा हूं, लेकिन यह नहीं पता कि कैसे निर्धारित किया जाए कि अंक घड़ी के विपरीत या विपरीत दिशा में हैं या नहीं। एक बेहतर विचार प्राप्त करने के लिए पहले बताए गए कार्यक्रम के साथ आकृतियों को चित्रित करने का प्रयास करें, आप अनुभव कर सकते हैं कि मैं बेहतर तरीके से बात कर रहा हूं, इससे पहले कि मैं इसे समझाने की कोशिश कर सकूं।
यहाँ कैसे अंक निर्धारित किए जाते हैं:
:
यहाँ एक वामावर्त बहुभुज की एक छवि है:
function Point(x, y) {
this.x = x;
this.y = y;
}
var vertices = [];
// Called on click
function addPoint(mouseX, mouseY) {
vertices.push(new Point(mouseX, mouseY));
}
यहाँ एक घड़ी की बहुभुज की एक छवि है
यदि आप मुझे पता लगाने में मदद कर सकते हैं कि अंक के "घड़ी की दिशा" को कैसे निर्धारित किया जाए, तो मैं बहुत आभारी रहूंगा!
प्रत्येक तीन बिंदुओं के बीच कोण को मापें, और पूरे बहुभुज के लिए योग मापें। एक दिशा में आपको सकारात्मक मिलेगा, और दूसरे में आपको नकारात्मक कुल मिलेगा। आपके पॉलीगॉन के क्लॉक-वार-नेस के अनुरूप। – TMB
बस यह प्रश्न मिला: http://stackoverflow.com/questions/1165647/how-to-determine-if-a-list-of-polygon-points-are-in-clockwise-order स्वीकृत उत्तर का एक समान समाधान है , लेकिन शायद मेरे से आसान है। – kodkod