簡體   English   中英

如何在 ThreeJs 的球體直徑上畫一條線?

[英]How to draw a line on the diameter of a sphere in ThreeJs?

假設我有一個這樣的球體:

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 );  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM