// Задача: изградете къща чрез плъзгане на профил var renderer = new THREE.WebGLRenderer({antialias:true}); renderer.setSize( window.innerWidth, window.innerHeight ); renderer.setAnimationLoop( drawFrame ); document.body.appendChild( renderer.domElement ); var scene = new THREE.Scene(); scene.background = new THREE.Color( 'lightsteelblue' ); var aspect = window.innerWidth/window.innerHeight; var camera = new THREE.PerspectiveCamera( 30, aspect ); camera.position.set( 0, 4, 20 ); camera.lookAt( new THREE.Vector3() ); // профил (равнобедренотриъгълен) var shape = new THREE.Shape(); shape.moveTo( 0, 2 ); shape.lineTo( 2, -0.5 ); shape.lineTo( 1.5, -0.5); shape.lineTo( 1.5, -3); shape.lineTo( -1.5, -3); shape.lineTo( -1.5, -0.5); shape.lineTo( -2, -0.5 ); shape.lineTo( 0, 2); // създаване на формата на къщата чрез плъзгане var extrudeSettings = { depth: 3, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 0.1, bevelThickness: 0.1 }; var geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); // построяване на самия обект var object = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial({shininess: 140, specular: 'white'}) ); scene.add( object ); var light = new THREE.PointLight( 'white', 0.4 ); light.position.set( 0, 0, 30 ); scene.add( light ); function drawFrame() { // въртим обекта object.rotation.y += 0.002; object.rotation.z = 0.3*Math.sin(10*object.rotation.y); renderer.render( scene, camera ); }