クリックするとモーダルを起動するホストスポットを持つ回転地球儀を作成しました。地球が回転し、画面の中央にあるホットスポットがクリックされるようにしたいと思います。以下のコードは、地球を回転させますが、必要に応じて中央に配置しません。親切にポインタを提供してください
checkHotspotClick: function(){
var me = this;
window.cancelAnimationFrame(me.animate)
//get normalized mousecoords -1 -> 1
var mouse2DX = (mouseX/me.windowDimensionX)*2-1
var mouse2DY = -(mouseY/me.windowDimensionY)*2+1
//for use with a orthographic camera
var vecOrigin = new THREE.Vector3( mouse2DX, mouse2DY, - 1 );
var vecTarget = new THREE.Vector3( mouse2DX, mouse2DY, 1 );
me.projector.unprojectVector( vecOrigin, me.camera );
me.projector.unprojectVector( vecTarget, me.camera );
vecTarget.subSelf( vecOrigin ).normalize();
var ray = new THREE.Ray();
ray.origin = vecOrigin;
ray.direction = vecTarget;
var intersects = ray.intersectObjects(me.hotspotsArr);
if (intersects.length > 0) {
console.log($(me.hotspotDivsArr[intersects[0].object.name]).html())
// ajax overide
me.targetRotation_x += (me.options.camX-mouse2DX)*12;
me.targetRotation_y += (me.options.camY+mouse2DY)*12;
me.doZoom(-6);
console.log(me.targetRotation_x);
var country_id = $(me.hotspotDivsArr[intersects[0].object.name]).data('id');
url = 'home/getProjectData';
$("#myModal").load(url,{ s: country_id });
setTimeout(function() {$("#myModal").modal('show')},2000);
$('#myCarousel').carousel($(this).data('slide-index'));
/*me.targetRotation_x = 0;*/
}
else
{
me.doZoom(+6);
}
},