gpt4 book ai didi

javascript - 如何在ThreeJs中在球体直径上画一条线?

转载 作者:行者123 更新时间:2023-12-02 16:05:24 25 4
gpt4 key购买 nike

假设我有一个像这样的球体:

var geometry = new THREE.SphereGeometry( 1, 32, 32 );
window.sphere = new THREE.Mesh( geometry, material );
scene.add( window.sphere );

然后我如何围绕球体的直径画一条线?优选地平行于x轴。这里的最终目标是使用这样一条线与文本结合来说明尺寸(例如,该球体的直径为 10m)。

最佳答案

你可以使用这个技巧:

var material = new THREE.MeshBasicMaterial( { color: 0xaaaaaa } );
var geometry = new THREE.SphereGeometry( 32, 32, 32 );
var sphere = new THREE.Mesh( geometry, material );
scene.add( sphere );

var geometry = new THREE.TorusGeometry( 31.9, 0.16, 64, 100 );
var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
var torus = new THREE.Mesh( geometry, material );
torus.rotation.x = Math.PI/2;
scene.add( torus );

http://jsfiddle.net/10hemttk/36/

更新。嗯,这种方式更正确:

var rad = 32,
delta = 0.05,
segs = 64,
material = null,
geometry = null,
circle = null,
sphere = null;

material = new THREE.LineBasicMaterial( { color: 0xffff00 } ),
geometry = new THREE.CircleGeometry( rad+delta, segs ),
geometry.vertices.shift();
circle = new THREE.Line( geometry, material );
circle.rotation.x = Math.PI/2;
scene.add( circle );

material = new THREE.MeshBasicMaterial( { color: 0xaaaaaa } );
geometry = new THREE.SphereGeometry( rad, segs, segs );
sphere = new THREE.Mesh( geometry, material );
scene.add( sphere );

关于javascript - 如何在ThreeJs中在球体直径上画一条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30804066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com