Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript three.js立方体几何体-如何更新参数?_Javascript_Three.js - Fatal编程技术网

Javascript three.js立方体几何体-如何更新参数?

Javascript three.js立方体几何体-如何更新参数?,javascript,three.js,Javascript,Three.js,可能是个愚蠢的问题,但问题来了。三个.js几何体具有与之关联的“参数”字段,请参见此处的长方体几何体 我正在尝试像这样更新这些参数 var nodeSize = 10; var geometry = new THREE.CubeGeometry(nodeSize, nodeSize, nodeSize); mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial({side:THREE.DoubleSide})); scene.

可能是个愚蠢的问题,但问题来了。三个.js几何体具有与之关联的“参数”字段,请参见此处的长方体几何体

我正在尝试像这样更新这些参数

var nodeSize = 10;
var geometry = new THREE.CubeGeometry(nodeSize, nodeSize, nodeSize);
mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial({side:THREE.DoubleSide}));

scene.add(mesh);
mesh.geometry.parameters.depth=20;
但当然,几何结构保持不变。有没有办法通过编辑这些参数来更新几何体

在这里拉小提琴


感谢您的帮助

更改参数后,需要再次
渲染

参数。深度仅在几何体构造时使用。修改时它没有效果。您可以将其视为
只读


使用位于的示例和右侧的gui查看如何实现您想要的功能。

Gaitat完全正确,您不能通过更改
参数来更改几何图形

还有另一个解决办法。随着立方体的缩放

function setSize( myMesh, xSize, ySize, zSize){
  scaleFactorX = xSize / myMesh.geometry.parameters.width;
  scaleFactorY = ySize / myMesh.geometry.parameters.height;
  scaleFactorZ = zSize / myMesh.geometry.parameters.depth;
  myMesh.scale.set( scaleFactorX, scaleFactorY, scaleFactorZ );
}
...
setSize(mesh, 10, 10, 20);

示例

通过更改
深度
字段,您想做什么?这些信息可能会很有用谢谢你的帮助@Giovazz89,我从收到的答案中做了一点修改。。。不管怎么说,这都不是一个愚蠢的问题。我想寻求帮助。我是根据你的回答得出的“完全正确”可能有点不正确正如现在的ThreeJSAPI一样,答案很可能是正确的。但这是开源的。我认为OP的答案应该是“是的,有一种方法可以做到这一点……它可能需要一个功能请求和一段时间。”因此,请您澄清/扩展。关于这个问题,你知道什么使它变得不可能吗?@kandinski好吧,你可以通过提供一个工作示例来证明这种不正确性,在这个示例中,你可以直接更改
THREE.BoxGeometry()
的值,它会影响几何:)我雄心勃勃,但不是聋子……你很高兴地用自己的语气结束了这一挑战。这正是我想要的……帮我省去了几天毫无意义的努力。我正在给参数化api提供一些基本的算法,我被它的美丽迷住了。。。东西。。。你叫他们什么?被吹走了。我想实时调整算法,为最佳点找到合适的范围。。。你叫他们什么?我看了你的简历。。。你知道我在追求什么。所以我可以提出一个有史以来最荒谬的问题,或者邀请你在旁白频道回答。。。以后再说。@kandinski TBH,我没有得到你想要告诉我的:)如果你有问题,你也可以在网上问他们,并给出更详细的解释。