मैं एक ऐप बना रहा हूं जिसमें मैं बनावट के साथ कुछ विमान प्रस्तुत करता हूं। हालांकि, मैं हेलिक्स के त्रिज्या की गणना करना चाहता हूं (जिसे मैं हेलिक्स बनाने के लिए अपनी गणना में उपयोग करता हूं), गतिशील रूप से फ्रस्टम चौड़ाई और कैमरा स्थिति के आधार पर।हेलिक्स के त्रिज्या की गणना करें ताकि हेलिक्स में मॉडल निराशा के अंदर हों
हेलिक्स स्क्रीन x = 0, y = 0, z = 0 के केंद्र में स्थित है।
मैं इसे स्क्रीन अभिविन्यास (परिदृश्य/चित्र) पर विचार करना चाहूंगा। अब तक यह मेरे पास कोड है लेकिन ऐसा लगता है कि मुझे कुछ याद आ रहा है क्योंकि बाएं और दाएं विमान के अंदर नहीं हैं व्यूपोर्ट
App.prototype.calculateHelixRadius = function(){
// plane width = height = 512;
var friend = this.getFriend();
var vFOV = friend.camera.fov * Math.PI/180;
var dist = utils.getAbsPointsDistance3D(friend.camera.position, friend.scene.position);
var aspect = friend.settings.container.clientWidth/friend.settings.container.clientHeight;
var frustumHeight = 2.0 * dist * Math.tan(0.5 * vFOV);
var frustumWidth = frustumHeight * aspect;
return utils.isLandscape() ? frustumHeight/2 : frustumWidth/2 ;
};
मैं क्या गलत कर रहा हूं और स्क्रीन के किनारों पर विमान क्यों नहीं हैं?
संदर्भ यहाँइसके अलावा getAbsPointsDistance3D
var utils = {
// other helpers...
getAbsPointsDistance3D: function(p1, p2) {
var xd = p2.x - p1.x;
var yd = p2.y - p1.y;
var zd = p2.z - p1.z;
return Math.sqrt(xd * xd + yd * yd + zd * zd);
}
};
अद्यतन
मैं जिले पैरामीटर को कम करने की कोशिश की के कोड है लेकिन परिणाम संगत नहीं हैं ...
1. http://stackoverflow.com/questions/14614252/how-to-fit-camera-to-object, 2. http://stackoverflow.com/questions/20059612/calculate- कैमरा-ज़ूम-आवश्यक-ऑब्जेक्ट-टू-फिट-इन-स्क्रीन-ऊंचाई, 3. http://stackoverflow.com/questions/16462848/three-js-zoom-to-fit-width-of-objects- अनदेखी-ऊंचाई – gaitat
जो आप पहुंचने का प्रयास कर रहे हैं उसका एक स्क्रीनशॉट, इस समस्या को हल करने में मदद करेगा। – ProllyGeek