JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/96/three.js"></script>
<div id="divThreeSixtyView">
<div class="col-md-6" id="flybyMain">
</div>
</div>
JavaScript
var camera, scene, renderer;
var isUserInteracting = false,
onMouseDownMouseX = 0, onMouseDownMouseY = 0,
lon = 0, onMouseDownLon = 0,
lat = 0, onMouseDownLat = 0,
phi = 0, theta = 0, totalAngle = 0, currentImg = 0,
angleDiff = 0;
isImageLoaded = false;
axis = new THREE.Vector3(0, 1, 0);
startVector = new THREE.Vector3(0, 0, 0);
endVector = new THREE.Vector3(0, 0, 0);
lookVector = new THREE.Vector3();
init();
function init() {
var container;
container = document.getElementById( 'flybyMain' );
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 1100 );
camera.target = new THREE.Vector3( 0, 0, 0 );
scene = new THREE.Scene();
var geometry = new THREE.SphereBufferGeometry( 500, 60, 40 );
// invert the geometry on the x-axis so that all of the faces point inward
geometry.scale( - 1, 1, 1 );
loader = new THREE.TextureLoader();
material = new THREE.MeshBasicMaterial();
mesh = new THREE.Mesh( geometry, material );
loader.load('http://www.hdrone.com/wp-content/uploads/2012/11/001-final-image.jpg', function (texture) {
material.map = texture;
scene.add( mesh );
});
renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
container.appendChild( renderer.domElement );
document.addEventListener( 'mousedown', onPointerStart, false );
document.addEventListener( 'mousemove', onPointerMove, false );
document.addEventListener( 'mouseup', onPointerUp, false );
document.addEventListener( 'wheel', onDocumentMouseWheel, false );
document.addEventListener( 'touchstart', onPointerStart, false );
document.addEventListener( 'touchmove', onPointerMove, false );
document.addEventListener(...