तो यह है। मेरे पास एक निश्चित प्वाइंट 3 डी है। मेरे पास एक कैमरा है। मुझे कैमरे के दृश्य कोण पता है, जो 45 डिग्री है; मुझे कैमरा स्थिति और लुकडाइक्शन वेक्टर पता है। अब मैं यह पता लगाने का कोई तरीका चाहता हूं कि बिंदु कैमरे के लिए दृश्यमान होगा या नहीं।यह पता लगाने के लिए कि क्या कोई निश्चित पॉइंट 3 डी कैमरा दृश्य सीमाओं के अंदर है?
उन लोगों के लिए धन्यवाद जो जवाब दिया है और टिप्पणी की है, लेकिन:
यह मेरे लिए एक सीधा समस्या नहीं है। यह एक साधारण बात प्रतीत हो सकती है, लेकिन मुझे समस्या को हल करने के लिए कोई विशेष विधि या सहायक वर्ग नहीं मिला। मैं इसे अपने आप को सुलझाने, एक विशुद्ध रूप से गणित तरह से कोशिश की है, लेकिन समाधान अस्थिर है और अप्रत्याशित काम करता है:
bool isPointInCameraView(Point3D P, Point3D CP, Vector3D LD, double CameraAngle) { //first calculate Distance to the plane formed by normal vector LD and point P on it var D = -LD.X*P.X-LD.Y*P.Y-LD.Z*P.Z; // -AXb-BYb-CZb //L is the distance to the plane. double L = Math.Abs((LD.X * CP.X + LD.Y * CP.Y + LD.Z * CP.Z + D))/Math.Sqrt(LD.X * LD.X + LD.Y * LD.Y+LD.Z * LD.Z); var BL = L * Math.Tan(CameraAngle); //length of bound part var PL = Math.Sqrt(((new Vector3D(P.X - CP.X, P.Y - CP.Y, P.Z - CP.Z)).LengthSquared - L * L)); // length of point part //test if point is out of bounds! return PL <= BL; }
मैं Helix3D बारे में पता है और मैं इसे का उपयोग कर रहा हूँ। मेरा व्यूपोर्ट और कैमरा हेलिक्स ढांचे से हैं।
मुझे लगता है कि अगर मुझे इस तरह की परीक्षा की आवश्यकता क्यों है, तो मुझे यह समझना आसान होगा कि समस्या को समझना आसान होगा। मैं एक भू-विज्ञान दृश्यता अनुप्रयोग का निर्माण कर रहा हूं, और मुझे विवरण देखने के लिए बनावट में गहरी ज़ूम करने में सक्षम होना चाहिए। समस्या यह थी कि मैं बहुत बड़े बनावट का उपयोग नहीं कर सका, क्योंकि वे बहुत अधिक स्मृति लेते हैं, और आकर्षित करने में बहुत अधिक समय लेते हैं। मैंने फैसला किया कि मेरे विमान को कई उपनिवेशों में विभाजित करने के लिए, जिनमें से प्रत्येक को अलग से संभाला जाना चाहिए। तो विचार यह है कि जब उपयोगकर्ता विमान के कुछ हिस्सों में ज़ूम करता है, तो मैं केवल उस भाग को प्रस्तुत करता हूं। यह ठीक काम करता है, कोड को छोड़कर कोड को उन उपनिवेशों के लिए अभी भी चित्रित किया गया है जो कैमरे के लिए अदृश्य थे। अब मैं इसे अनुकूलित करना चाहता हूं। मैंने किसी भी विशेष समारोह की खोज करने की कोशिश की जो मुझे ऐसा करने देगी, लेकिन कोई सफलता नहीं। तो अब समाधान केवल गणितीय है और यह अस्थिर है, यह गलत काम कर रहा है। यही कारण है कि मैंने यहां इस सवाल से पूछा।
यह शायद http://math.stackexchange.com/ –
पर अधिक प्रासंगिक है आपने पहले से क्या प्रयास किया है? यह एक बहुत सीधी समस्या है, यह देखना अच्छा लगेगा कि आप कुछ प्रयास करेंगे ... –