यदि एक बिंदु दो समानांतर रेखाओं के बीच स्थित है तो मैं कैसे परीक्षण कर सकता हूं?


10

मैं जिस गेम को डिजाइन कर रहा हूं उसमें एक धमाका है जो एक मूल बिंदु से माउस की दिशा में शूट करता है। इस धमाके की चौड़ाई हमेशा एक जैसी होने वाली है।

स्क्रीन के नीचे (वर्तमान में क्या है) वर्गों के साथ चलता है जिसके बारे में उस विस्फोट से प्रभावित होना चाहिए जिसे खिलाड़ी नियंत्रित करता है।

वर्तमान में मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या इन चौकों के कोने धमाके की दो बाउंडिंग लाइनों के भीतर हैं। मैंने सोचा कि ऐसा करने का सबसे अच्छा तरीका एक मूल बिंदु के चारों ओर वर्ग के कोनों को घुमाने के लिए होगा जैसे कि विस्फोट पूरी तरह से क्षैतिज थे और देखें कि क्या कोनों के वाई मान धमाके की चौड़ाई से कम या बराबर थे या नहीं? इसका मतलब है कि वे प्रभावित क्षेत्र में रहते हैं, लेकिन मैं काम नहीं कर सकता


यह मेरे लिए उपयोगी था: stackoverflow.com/a/3461533/1599699
एंड्रयू

जवाबों:


11

बिंदु 2 समानांतर रेखाओं के बीच है यदि यह एक रेखा के एक तरफ है और दूसरी पंक्ति के दूसरी तरफ (उसी दिशा में रेखाएं प्रदान करती हैं)।

आप इस प्रश्न के शीर्ष उत्तर का उपयोग स्टैकओवरफ़्लो में एक पंक्ति के किस पक्ष (उस पर 2 बिंदुओं द्वारा परिभाषित) पर काम करने के लिए कर सकते हैं।


एक वैकल्पिक तरीका यह होगा कि बिंदु से मध्य रेखा की दूरी की गणना की जाए और तुलना की जाए कि आपके ब्लास्ट की मोटाई आधी हो।


2

यह है कि मैं इसे कैसे करता हूं (एक अतिरिक्त जांच के साथ कि प्रदान किए गए विमान वास्तव में समानांतर हैं या नहीं। प्लेन ऑब्जेक्ट्स में विमान समीकरण इस रूप में होता है: Ax + By + Cz + D = 0, जिसे आप आसानी से दिए गए 3 से उत्पन्न कर सकते हैं। अंक, या एक बिंदु और एक सामान्य से (इस पृष्ठ को देखें यदि आप गणित के बारे में अनिश्चित हैं: http://paulbourke.net/geometry/pointlineplane/ )

bool isPointBetweenParallelPlanes(const vec3 point, const Plane a, const Plane b){
// test if planes are parallel
vec3 cross = a.normal CROSS b.normal;
assert((a.normal CROSS b.normal) == vec3(0,0,0) && "These planes should be parallel.");
return ((a.normal DOT point) + a.D) * ((b.normal DOT point) + b.D) < 0.0;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.