javascript - 使用 THREE.js 通过坐标自定义 3D 对象

标签 javascript 3d three.js

我有一个 (x,y,z) 顶点坐标数组。 以及包含每个面的顶点索引(来自第一个数组)的面数组(其中每个面可以有不同数量的顶点)。

如何使用这些数据制作自定义 3D 对象?

最佳答案

如果你只有凸多边形,你可以这样做。第二个循环从凸多边形创建三 Angular 形带。

var vertices = [
    0, 0, 0,
    1, 0, 0,
    1, 1, 0,
    0, 1, 0,
    0, 0, 1
];

var faces = [
    [0, 1, 2, 3],
    [0, 3, 4]
];

var geometry = new THREE.Geometry ();
var i, j, face;
for (i = 0; i < vertices.length; i += 3) {
    geometry.vertices.push (new THREE.Vector3 (
        vertices[i],
        vertices[i + 1],
        vertices[i + 2]
    ));
}

var i, j, face;
for (i = 0; i < faces.length; i++) {
    face = faces[i];
    for (j = 1; j < face.length - 1; j++) {
        geometry.faces.push (new THREE.Face3 (face[0], face[j], face[j + 1]));
    }
}

这是整个代码的 fiddle :http://jsfiddle.net/g25v5t0k/

关于javascript - 使用 THREE.js 通过坐标自定义 3D 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26846031/

相关文章:

javascript - 我的方法总是提醒对象 [Object object]

html - 为什么 Chrome 仅忽略 3D 立方体一个面上的链接?

javascript - ThreeJS bufferGeometry 位置属性在应用翻译时不更新

javascript - 如何在html5 Canvas 中制作可点击的点?

javascript - 使用javascript触发下拉菜单

c++ - 光能传递全局照明阴影边缘抖动,不直

javascript - THREE.js - 无法在本地加载纹理

javascript - 三个js : Geometry vertices not updated when exported to STL

javascript - 函数的运行时执行过程

html - 转换样式 : preserve3d not working in Firefox and IE