2013-04-29 141 views
4

我试图绘制三角形three.js所:three.js所绘制简单的三角形

var scene = new THREE.Scene(); 

var camera = new THREE.PerspectiveCamera(40, window.innerWidth/window.innerHeight, 1, 1000); 
camera.position.z = 100; 
scene.add(camera); 

var renderer = new THREE.WebGLRenderer(); 
renderer.setSize(window.innerWidth, window.innerHeight); 
document.body.appendChild(renderer.domElement); 

var geom = new THREE.Geometry(); 
var v1 = new THREE.Vector3(0,0,0); 
var v2 = new THREE.Vector3(30,0,0); 
var v3 = new THREE.Vector3(30,30,0); 

console.log(geom.vertices) 
geom.vertices.push(new THREE.Vertex(v1)); 
geom.vertices.push(new THREE.Vertex(v2)); 
geom.vertices.push(new THREE.Vertex(v3)); 

geom.faces.push(new THREE.Face3(0, 1, 2)); 
geom.computeFaceNormals(); 

var mesh= new THREE.Mesh(geom, new THREE.MeshNormalMaterial()); 
scene.add(mesh); 

renderer.render(scene, camera); 

但并没有什么在屏幕上。 但是这些例子的工作: http://threejs.org/docs/58/#Manual/Introduction/Creating_a_scene https://github.com/tonylukasavage/jsstl(三角形在这里创建我试图做同样的方式)

能否请你帮我找到了问题? 谢谢, Ievgeniia

+0

确定您使用的浏览器支持WebGL?我只是试着把你的代码放到http://jsfiddle.net并且它正常工作。 – 2013-04-29 13:45:17

+0

好点。尝试THREE.CanvasRenderer()。 – WestLangley 2013-04-29 13:50:00

回答

9

做到这一点,而不是:

geom.vertices.push(v1); 
geom.vertices.push(v2); 
geom.vertices.push(v3); 

您复制从网上过时的代码 - 或者过时的书吗?学习适用于当前版本库的three.js示例。

three.js r.58

+0

非常感谢!有效。 – Zheden 2013-04-29 13:51:59