मैं जावास्क्रिप्ट/jquery (डीओएम आधारित, कैनवास नहीं) में किसी प्रकार का ड्रैग और ड्रॉप ऐप बना रहा हूं।माउस निर्देशांक को 3 डी प्लान में अनुवाद करें
विचार 3 डी दृश्य (3 डी में घूर्णन वाला div) पर divs खींचने में सक्षम होना है।
यह एक 2 डी योजना पर काम करता है, समस्या यह है जब मैं 3 डी में दृश्य घुमाने के लिए, वस्तुओं स्थिति वास्तविक माउस स्थिति को प्रतिबिंबित नहीं करता है, लेकिन निर्देशांक 3 डी
में अनुवाद इलस्ट्रेटेड उदाहरण:
मैं वस्तुओं को माउस की पूर्ण स्थिति के सापेक्ष आगे बढ़ाना चाहता हूं।
मैं इस तरह माउस स्थिति की गणना:
document.addEventListener(gestureMove, function (event) {
if (mouseDown == true) {
event.preventDefault();
moveX = (event.pageX - $('#scene').offset().left);
moveY = (event.pageY - $('#scene').offset().top);
}
#scene {
width: 1000px;
height: 1000px;
-webkit-transform-style: preserve-3d;
-webkit-transform: rotateX(35deg);
}
एक प्रारंभिक समाधान माउस की स्थिति और वस्तु प्रारंभिक स्थिति के आधार पर के बीच अंतर की गणना करने के लिए था, और खींचें के दौरान वस्तु स्थिति में जोड़ने । यह काम कर रहा था, लेकिन एनीमेशन वास्तव में चंचल था और बिल्कुल चिकनी नहीं था।
मुझे यकीन है कि 3 डी प्लान के सापेक्ष माउस निर्देशांक प्राप्त करने का एक और आसान तरीका है, लेकिन इस बिंदु पर वास्तविक समाधान नहीं मिला।
इस विषय पर अधिकांश खोज परिणाम गेमिंग उन्मुख भाषाओं, या कैनवास/वेबलॉग प्रश्नों को इंगित करते हैं।
कोई विचार?
धन्यवाद
मुझे लगता है कि Google स्केच-अप ने इसका अच्छा काम किया है। –
आप शायद परिप्रेक्ष्य प्रक्षेपण के विपरीत कर रहे हैं: http://en.wikipedia.org/wiki/3D_projection#Perspective_projection – Blender
क्या आप अपने कोड को jsfiddle में फिट करने के लिए पर्याप्त नीचे डिस्टिल कर सकते हैं? – Shmiddty