您可以使用这一招:
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/
UPD。好,这样更正确:
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);
我不是在看的jsfiddle什么... –
你没看到球体附近的黄线?奇怪。在任何情况下,诀窍都很清楚:绘制环面半径等于或稍小于半径接近零的球体半径。 –
我在jsfiddle里看不到任何东西,它是一个黑屏。这看起来很不方便,当然必须有办法沿着球体的外边画一条线。 –