three.js入门 DEMO

41 篇文章 0 订阅
10 篇文章 1 订阅

入门 DEMO

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://threejs.org/build/three.js"></script>
</head>
<body>
<script>
	//建立了场景
	var scene = new THREE.Scene();
	/*
		摄像机 ( PerspectiveCamera(透视摄像机)或者 OrthographicCamera(正交摄像机)。)
	 	1.PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number )
			fov — 摄像机视锥体垂直视野角度
			aspect — 摄像机视锥体长宽比
			near — 摄像机视锥体近端面
			far — 摄像机视锥体远端面
		2.OrthographicCamera( left : Number, right : Number, top : Number, bottom : Number, near : Number, far : Number )
			left — 摄像机视锥体左侧面。
			right — 摄像机视锥体右侧面。
			top — 摄像机视锥体上侧面。
			bottom — 摄像机视锥体下侧面。
			near — 摄像机视锥体近端面。
			far — 摄像机视锥体远端面。
	*/
	var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
	// 渲染器
	var renderer = new THREE.WebGLRenderer({
		antialias:true //是否执行抗锯齿
	});
	renderer.setSize( window.innerWidth, window.innerHeight );
	// 添加到页面中
	document.body.appendChild( renderer.domElement );
	// BoxGeometry(立方体)对象
	var geometry = new THREE.BoxGeometry( 20, 20, 20 );
	// 素材
	var material = new THREE.MeshLambertMaterial( { color: 0xffff00 } );
	// 网格
	var cube = new THREE.Mesh( geometry, material );
	//默认情况下,当我们调用scene.add()的时候,物体将会被添加到坐标为(0,0,0)的位置。但这可能会使得摄像机的位置和立方体相互重叠(也就是摄像机位于立方体中)。
	scene.add( cube );

	//为了防止这种情况的发生,我们只需要将摄像机稍微向外移动一些即可。
	camera.position.z = 100;

	// light
	var light = new THREE.PointLight(0xffff00);
	light.position.set(10, 0, 25);
	scene.add(light);

	// “渲染”或者“动画循环”
	function animate() {
		requestAnimationFrame( animate );
		// 让它旋转起来
		cube.rotation.x += 0.03;
		cube.rotation.y += 0.03;

		renderer.render( scene, camera );
	}
	animate();

</script>
</body>
</html>

二十面体 DEMO

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://threejs.org/build/three.js"></script>
</head>
<body>
<script>
	//建立了场景
	var scene = new THREE.Scene();
	// 摄像机
	var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
	// 渲染器
	var renderer = new THREE.WebGLRenderer({
		antialias:true //是否执行抗锯齿
	});
	renderer.setSize( window.innerWidth, window.innerHeight );
	// 添加到页面中
	document.body.appendChild( renderer.domElement );
	// 二十面体(立方体)对象
	var geometry = new THREE.IcosahedronGeometry(15, 0);
	// 素材
	var material = new THREE.MeshNormalMaterial();
	// 网格
	var icosahedron = new THREE.Mesh( geometry, material );
	//默认情况下,当我们调用scene.add()的时候,物体将会被添加到坐标为(0,0,0)的位置。但这可能会使得摄像机的位置和立方体相互重叠(也就是摄像机位于立方体中)。
	scene.add( icosahedron );

	// rotate
	icosahedron.rotation.x = 0.1;
	icosahedron.rotation.y = -0.25;

	//为了防止这种情况的发生,我们只需要将摄像机稍微向外移动一些即可。
	camera.position.z = 100;

	// light
	var light = new THREE.PointLight(0xffff00);
	light.position.set(10, 0, 25);
	scene.add(light);

	// “渲染”或者“动画循环”
	function animate() {
		requestAnimationFrame( animate );
		// 让它旋转起来
		icosahedron.rotation.x += 0.03;
		icosahedron.rotation.y += 0.03;

		camera.updateProjectionMatrix();
		renderer.render( scene, camera );
	}
	animate();

</script>
</body>
</html>

我的个人博客,有空来坐坐

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值