绿色三角旋转

三角


更多有趣示例 尽在 知屋安砖社区

示例

在这里插入图片描述

CSS

body {
  margin: 0px;
}

JS

let scene = new THREE.Scene(),
  camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000),
  renderer = new THREE.WebGLRenderer({
    alpha: true
  }), // init like this
  group = new THREE.Group(),
  extrudeOptionsGold = {
    amount: 1,
    bevelEnabled: true,
    bevelSegments: 2,
    steps: 2,
    bevelSize: 2,
    bevelThickness: 15
  };

renderer.setClearColor(0x0d9263, 1);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

/** Gold Pieces **/
let goldTriShape1 = new THREE.Shape();
goldTriShape1.moveTo(0, 90);
goldTriShape1.lineTo(-50, 0);
goldTriShape1.lineTo(50, 0);
goldTriShape1.lineTo(0, 90); //This will close path

let goldTriGeom1 = new THREE.ExtrudeGeometry(goldTriShape1, extrudeOptionsGold),
  goldTriMesh1 = new THREE.Mesh(goldTriGeom1, new THREE.MeshBasicMaterial({
    color: 0xC4A956
  }));

let goldTriShape2 = new THREE.Shape();
goldTriShape2.moveTo(-50, 0);
goldTriShape2.lineTo(-100, -90);
goldTriShape2.lineTo(0, -90);
goldTriShape2.lineTo(-50, 0);

var goldTriGeom2 = new THREE.ExtrudeGeometry(goldTriShape2, extrudeOptionsGold);
var goldTriMesh2 = new THREE.Mesh(goldTriGeom2, new THREE.MeshBasicMaterial({
  color: 0xC4A956
}));

let goldTriShape3 = new THREE.Shape();
goldTriShape3.moveTo(50, 0);
goldTriShape3.lineTo(0, -90);
goldTriShape3.lineTo(100, -90);
goldTriShape3.lineTo(50, 0);

let goldTriGeom3 = new THREE.ExtrudeGeometry(goldTriShape3, extrudeOptionsGold),
  goldTriMesh3 = new THREE.Mesh(goldTriGeom3, new THREE.MeshBasicMaterial({
    color: 0xC4A956
  }));

scene.add(goldTriMesh1);
scene.add(goldTriMesh2);
scene.add(goldTriMesh3);

camera.position.z = 500;

function init() {
  goldTriMesh1.position.y = 500;
  goldTriMesh2.position.y = -500;
  goldTriMesh2.position.x = -500;
  goldTriMesh3.position.y = -500;
  goldTriMesh3.position.x = 500;
}

function animate() {
    bringPiecesTogether();
    requestAnimationFrame(animate);
    render();
}


function render() {
  renderer.render(scene, camera);
}


function bringPiecesTogether() {
  let desiredPosition = 0;
  
  if (goldTriMesh1.position.y !== desiredPosition) {
    goldTriMesh1.position.y -= 4;
    goldTriMesh2.position.y += 4;
    goldTriMesh2.position.x += 4;
    goldTriMesh3.position.y += 4;
    goldTriMesh3.position.x -= 4;
    
    goldTriMesh1.rotateX(.07);
    goldTriMesh1.rotateY(.07);
    goldTriMesh1.rotateZ(.015);
    
    goldTriMesh2.rotateX(.07);
    goldTriMesh2.rotateY(.07);
    goldTriMesh2.rotateZ(.015);
    
    goldTriMesh3.rotateX(.07);
    goldTriMesh3.rotateY(.07);
    goldTriMesh3.rotateZ(.015);
  } else {
    goldTriMesh1.rotateY(.01);
    goldTriMesh2.rotateY(.01);
    goldTriMesh3.rotateY(.01);
  }
}

init();
animate();
render();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值