U-shaped object

by 蔡 育曄

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>

CSS

body {
  overflow: hidden
}

JavaScript

var renderer, camera, controls, scene;

init();
animate();

function buildAou() {
	var aou = new THREE.Mesh();
	
	var meshNormalMat = new THREE.MeshNormalMaterial();
	
	var column1 = new THREE.Mesh(new THREE.BoxGeometry(10, 30, 10), meshNormalMat);
	var column2 = new THREE.Mesh(new THREE.BoxGeometry(10, 30, 10), meshNormalMat);
	var flat = new THREE.Mesh(new THREE.BoxGeometry(20, 10, 10), meshNormalMat);
	column1.position.set(5, 15, -5);
	flat.position.set(20, 5, -5);
	column2.position.set(35, 15, -5);
	aou.add(column1);
	aou.add(flat);
	aou.add(column2);
	return aou;
 }
function init() {

  renderer = new THREE.WebGLRenderer({
	  antialias: true
	});
  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.setClearColor(0x888888);
  document.body.appendChild(renderer.domElement);

  camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 1000);
  camera.position.y = 40;
  camera.position.z = 50;  // important

  controls = new THREE.OrbitControls(camera, renderer.domElement);

  scene = new THREE.Scene();
  
  var gridXZ = new THREE.GridHelper(100, 10, 'red', 'white');
  scene.add(gridXZ);
  
  var aou = buildAou();
  //scene.add(addAou());
  var aou2 = aou.clone();
  aou2.rotation.y = Math.PI/6;
  //aou2.position.set (10,0,20);
  scene.add (aou2);



}

function animate() {

  controls.update();
  renderer.render (scene, camera);

  requestAnimationFrame (animate);
}