|
三维几何模型
继续介绍圆柱模型、圆环模型、环面纽结、椎体模型以及多面体模型。
属性:radiusTop(顶端半径)、radiusBottom(底端半径)、height(高度)、radiusSegments(周长分割面数量)、heightSegments (高度分割面数量)、openEnded(两端是否覆盖)
构造:
var geometry = new.THREE CylinderGeometry();
举例:
var geometry = new THREE.CylinderGeometry(5, 5, 20, 32);var material = new THREE.MeshBasicMaterial({ color: 0xffff00});var cylinder = new THREE.Mesh(geometry, material);scene.add(cylinder);
属性:radius(圆环半径)、tube(管子半径)、radialSegment(长度方向分段数)、tubularSegment(宽度方向分段数)、arc(控制是否为完整圆环,arc=2*PI时为完整圆环)
举例:
var geometry = new THREE.TorusGeometry(10, 3, 16, 100);var material = new THREE.MeshBasicMaterial({ color: 0xffff00});var torus = new THREE.Mesh(geometry, material);scene.add(torus);
效果:
TorusKnotGeometry环面扭结
属性:p(几何体绕旋转对称轴绕了多少圈),q(几何体绕环面的圆绕了多少圈)、heightScale(拉伸环面扭结)
举例:
var geometry = new THREE.TorusKnotGeometry(10, 3, 100, 16, 2, 3);var material = new THREE.MeshBasicMaterial({ color: 0xffff00});var torusKnot = new THREE.Mesh(geometry, material);scene.add(torusKnot);
效果:
属性:radius(半径)、 height(高度)、radiusSegments(周长分割面数量)、heightSegments(高度分割面数量)、openEnded(锥底是否打开)、thetaStart(开始角度)、thetaLength(圆心角,默认2 * Pi)
举例:
var geometry = new THREE.ConeGeometry(5, 20, 32);var material = new THREE.MeshBasicMaterial({ color: 0xffff00});var cone = new THREE.Mesh(geometry, material);scene.add(cone);
效果:
属性:vertices(顶点),faces(面),radius(大小),detail(将多面体分成多少层)
Three.js中提供了几个特定的多面体:
(1) TetrahedronGeometry 正四面体
(2) Octahedron 正八面体
(3) IcosahedronGeometry 正二十面体
Notes:
将材质设置成THREE.DoubleSide,否则在模型旋转或移动至内部时模型的背部和内侧会不可见。
摘于公众号:砖人专语
小红转社区 - 满足对建筑开发的所有好奇xhz.bos.xyz |
|