<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>three.js从入门到精通系列教程013 - three.js创建多次旋转连接的圆环结</title>
<script src="ThreeJS/three.js"></script>
<script src="ThreeJS/jquery.js"></script>
</head>
<body>
<center id="myContainer"></center>
<script>
//创建渲染器
var myRenderer = new THREE.WebGLRenderer({ antialias: true });
myRenderer.setSize(window.innerWidth, window.innerHeight);
myRenderer.setClearColor("white", 1);
$("#myContainer").append(myRenderer.domElement);
var k = window.innerWidth / window.innerHeight;
var myCamera = new THREE.OrthographicCamera(-4 * k, 4 * k, -3 * k, 3 * k, 1, 500);
myCamera.position.set(0, 0, 200);
myCamera.lookAt(new THREE.Vector3(0, 0, 0));
var myScene = new THREE.Scene();
/*
THREE.TorusKnotGeometry(radius, tube, radialSegments, tubularSegments, p, q, heightScale)
圆环节和圆环很相似,只是多了一些参数。
radius : 圆环的半径,默认值为1。
tube : 管道的半径,默认值为0.4。
tubularSegments : 管道的分段数量,默认值为64。
radialSegments : 横截面分段数量,默认值为8。
p : 这个值决定了几何体将绕着其旋转对称轴旋转多少次,默认值是2。
q : 这个值决定了几何体将绕着其内部圆环旋转多少次,默认值是3。
*/
//创建多次旋转的圆环结
var myGeometry = new THREE.TorusKnotGeometry(2, 0.5, 100, 12, 3, 4);
var myMaterial = new THREE.MeshBasicMaterial({ color: 'green' });
//创建线框材质
myMaterial.wireframe = true;
var myMesh = new THREE.Mesh(myGeometry, myMaterial);
myScene.add(myMesh);
//渲染圆环结
myRenderer.render(myScene, myCamera);
</script>
</body>
</html>