JSFiddle - React, Tailwind, and code Playground
by meijun
JavaScript
import './ThreeMap.css';
import React, { Component } from 'react';
import * as THREE from 'three';
import OBJLoader from 'three-obj-loader';
const style = {
position: 'absolute',
left: 0,
top: 0,
borderRadius: '2%',
border: '2px solid #d7dbde',
width: '50%',
height: '244px',
marginLeft: '20px',
marginTop: '20px'
}
class ThreeMap extends Component {
componentDidMount() {
this.initThree();
}
initThree() {
let camera, scene, renderer;
let canvas1 = document.getElementById('canvas1');
let width = canvas1.clientWidth;
let height = canvas1.clientHeight;
init();
animate();
var object;
function init() {
//自定义画布位置
renderer = new THREE.WebGLRenderer({ canvas: canvas1 });
renderer.setSize(width, height);
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(40, width / height, 1, 1000);
camera.position.set(50, 50, 100);
camera.up.x = 0;//相机以哪个方向为上方
camera.up.y = 1;
camera.up.z = 0;
camera.lookAt(0, 0, 0)//相机看向哪个坐标,(0,0,0)是原点
//这里可以修改背景颜色
renderer.setClearColor(0xffffff);
//这里实现是否可以控制object的位置、旋转
// var controls = new THREE.OrbitControls(camera, renderer.domElement);
//是否可以缩放
// controls.enableZoom = false;
//禁止鼠标交互,此处设置为false之后,不能移动位置,不能旋转物体
// controls.enableRotate = false;
var light = new THREE.DirectionalLight(0xf8d366, 0.5);
light.position.setScalar(100);
scene.add(light);
scene.add(new THREE.AmbientLight(0xf8d366, 0.5));
}
function loadModel() {
// object.traverse( function ( child ) {
// if ( child.isMesh ) child.material.map = texture;
// } );
// object.position.y = - 95;
scene.add( object );
...