JSFiddle - React, Tailwind, and code Playground
HTML
<html>
<body>
<script>
var renderer;
var scene;
var camera;
var controls;
var radius = 200;
window.onload = function()
{
init();
animate();
}
function init()
{
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 700;
scene.add(camera);
// add directional light source
var directionalLight = new THREE.DirectionalLight(0xffffff);
directionalLight.position.set(1, 1, 1).normalize();
scene.add(directionalLight);
// window resize
window.addEventListener( 'resize', onWindowResize, false );
// controls
controls = new THREE.TrackballControls( camera, renderer.domElement );
controls.rotateSpeed = 1.0;
controls.zoomSpeed = 1.2;
controls.panSpeed = 0.2
controls.noZoom = false;
controls.noPan = false;
controls.staticMoving = false;
controls.dynamicDampingFactor = 0.3;
controls.minDistance = radius * 1.1;
controls.maxDistance = radius * 100;
controls.keys = [ 65, 83, 68 ];
addPoint(37.778, -122.452);
addPoint(51.517, 0.119);
addPoint(-33.8744, 151.2079);
addPoint(14.604, 120.990);
addPoint(-34.592, -58.412);
};
function onWindowResize( event )
{
width = window.innerWidth;
height = window.innerHeight;
renderer.setSize( width, height );
camera.aspect = width / height;
camera.updateProjectionMatrix();
controls.screen.width = width;
controls.screen.height = height;
camera.radius = ( width + height ) / 4;
};
function animate()
{
requestAnimationFrame( animate );
controls.update();
renderer.clear();
renderer.render( scene, camera );
};
function addPoint(lat, lng)
{
var phi = (90-lat) * Math.PI / 180;
var theta = (360-lng) * Math.PI /...