如何改变three.js气缸的厚度(How to change thickness of three.js cyclinder)

编程入门 行业动态 更新时间:2024-10-05 19:19:21
如何改变three.js气缸的厚度(How to change thickness of three.js cyclinder)

如果我有一个基本的空心旋风器,使用三个.js,如JSFiddle,我怎么能改变墙的厚度?

var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera( 95, window.innerWidth / window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); var geometry = new THREE.CylinderGeometry( 2, 2, 5, 360, 1, true ); var material = new THREE.MeshNormalMaterial( { color: 0x00ff00, side: THREE.DoubleSide } ); var cube = new THREE.Mesh( geometry, material ); scene.add( cube ); camera.position.y = 5; camera.position.z = 5; camera.lookAt(0,0,0); function animate() { requestAnimationFrame( animate ); renderer.render( scene, camera ); } animate();

JSFiddle的例子

If I have a basic hollow cyclinder made using three.js like in the JSFiddle how can I change the thickness of the walls?

var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera( 95, window.innerWidth / window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); var geometry = new THREE.CylinderGeometry( 2, 2, 5, 360, 1, true ); var material = new THREE.MeshNormalMaterial( { color: 0x00ff00, side: THREE.DoubleSide } ); var cube = new THREE.Mesh( geometry, material ); scene.add( cube ); camera.position.y = 5; camera.position.z = 5; camera.lookAt(0,0,0); function animate() { requestAnimationFrame( animate ); renderer.render( scene, camera ); } animate();

JSFiddle example

最满意答案

不,你必须从气缸中减去另一个气缸。 从中减去的是圆柱体的内径。

所以我把你的代码改为:

var outerGeometry = new THREE.CylinderGeometry(2, 2, 5, 360, 1); var innerGeometry = new THREE.CylinderGeometry(1.5, 1.5, 5, 360, 1); var material = new THREE.MeshNormalMaterial({ color: 0x00ff00, side: THREE.DoubleSide }); var outerCylinder = new ThreeBSP(outerGeometry); var innerCylinder = new ThreeBSP(innerGeometry); var hollowedCylinder = innerCylinder.union(outerCylinder); scene.add(hollowedCylinder.toMesh(material));

这是小提琴: http : //jsfiddle.net/gerdonabbink/tephoLr1/133/

如您所见,内圆柱为1.5,例如将其更改为1以使厚度为1。

No, you have to subtract another cylinder from a cylinder. The one you subtract from it is the inner diameter of the cylinder.

So I changed your code to this:

var outerGeometry = new THREE.CylinderGeometry(2, 2, 5, 360, 1); var innerGeometry = new THREE.CylinderGeometry(1.5, 1.5, 5, 360, 1); var material = new THREE.MeshNormalMaterial({ color: 0x00ff00, side: THREE.DoubleSide }); var outerCylinder = new ThreeBSP(outerGeometry); var innerCylinder = new ThreeBSP(innerGeometry); var hollowedCylinder = innerCylinder.union(outerCylinder); scene.add(hollowedCylinder.toMesh(material));

Here is the fiddle: http://jsfiddle.net/gerdonabbink/tephoLr1/133/

As you can see the inner cylinder is 1.5, change this to 1 for example to make the thickness 1.

更多推荐

本文发布于:2023-08-04 01:15:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1402440.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:气缸   厚度   js   cyclinder   thickness

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!