javascript/jquery (キャンバスではなく DOM ベース) である種のドラッグ アンド ドロップ アプリを構築しています。
アイデアは、3D シーン (3D で回転した div) で div をドラッグできるようにすることです。
2D プランで動作します。問題は、シーンを 3D で回転させると、オブジェクトの位置が実際のマウスの位置を反映せず、座標が 3D に変換されることです。
図示例:
マウスの絶対位置を基準にしてオブジェクトを移動させたい。
私はこのようにマウスの位置を計算します:
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 );
}
初期の解決策は、初期位置に基づいてマウスの位置とオブジェクトの差を計算し、ドラッグ中にオブジェクトの位置に加算することでした。動作していましたが、アニメーションは途切れ途切れで、まったくスムーズではありませんでした。
3D プランに対するマウス座標を取得するもっと簡単な方法があると確信していますが、現時点では実際の解決策を見つけることができませんでした。
この件に関する検索結果のほとんどは、ゲーム指向の言語、または canvas/webgl に関する質問を示しています。
何か案は ?
ありがとう