You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.4 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:BufferGeometry] &rarr;
<h1>挤压缓冲几何体([name]</h1>
<p class="desc">从一个形状路径中挤压出一个BufferGeometry。</p>
<iframe id="scene" src="scenes/geometry-browser.html#ExtrudeGeometry"></iframe>
<script>
// iOS iframe auto-resize workaround
if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
const scene = document.getElementById( 'scene' );
scene.style.width = getComputedStyle( scene ).width;
scene.style.height = getComputedStyle( scene ).height;
scene.setAttribute( 'scrolling', 'no' );
}
</script>
<h2>代码示例</h2>
<code>
const length = 12, width = 8;
const shape = new THREE.Shape();
shape.moveTo( 0,0 );
shape.lineTo( 0, width );
shape.lineTo( length, width );
shape.lineTo( length, 0 );
shape.lineTo( 0, 0 );
const extrudeSettings = {
steps: 2,
depth: 16,
bevelEnabled: true,
bevelThickness: 1,
bevelSize: 1,
bevelOffset: 0,
bevelSegments: 1
};
const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
const mesh = new THREE.Mesh( geometry, material ) ;
scene.add( mesh );
</code>
<h2>构造器</h2>
<h3>[name]([param:Array shapes], [param:Object options])</h3>
<p>
shapes — 形状或者一个包含形状的数组。<br />
options — 一个包含有下列参数的对象:
<ul>
<li>curveSegments — int曲线上点的数量默认值是12。</li>
<li>steps — int用于沿着挤出样条的深度细分的点的数量默认值为1。</li>
<li>depth — float挤出的形状的深度默认值为1。</li>
<li>bevelEnabled — bool对挤出的形状应用是否斜角默认值为true。</li>
<li>bevelThickness — float设置原始形状上斜角的厚度。默认值为0.2。</li>
<li>bevelSize — float。斜角与原始形状轮廓之间的延伸距离默认值为bevelThickness-0.1。</li>
<li>bevelOffset — float. Distance from the shape outline that the bevel starts. Default is 0.</li>
<li>bevelSegments — int。斜角的分段层数默认值为3。</li>
<li>extrudePath — THREE.Curve对象。一条沿着被挤出形状的三维样条线。Bevels not supported for path extrusion.</li>
<li>UVGenerator — Object。提供了UV生成器函数的对象。</li>
</ul>
</p>
<p>
该对象将一个二维形状挤出为一个三维几何体。
</p>
<p>
当使用这个几何体创建Mesh的时候如果你希望分别对它的表面和它挤出的侧面使用单独的材质你可以使用一个材质数组。
第一个材质将用于其表面;第二个材质则将用于其挤压出的侧面。
</p>
<h2>属性</h2>
<p>共有属性请参见其基类[page:BufferGeometry]。</p>
<h3>[property:Object parameters]</h3>
<p>
一个包含着构造函数中每个参数的对象。在对象实例化之后,对该属性的任何修改都不会改变这个几何体。
</p>
<h2>方法(Methods)</h2>
<p>共有方法请参见其基类[page:BufferGeometry]。</p>
<h2>源代码</h2>
<p>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</p>
</body>
</html>