Я добавил сферу и planegeometry на сцену, я использовал X и Y. поместить planegeometry в сцену, некоторые planegeometry накладываются друг на друг с Афоризмом мне нужно обнаружить наложенный planegeometry и поместите его в новое положение, чтобы избежать перекрытия этих плоскостей, не меняя значения X12 и X121 . может кто-то, пожалуйста, помогите мне, как решить эту проблему. Я только что добавил этот код в jsfiddle Я точно не знаю, как отображать результат в jsfiddle. Я добавил изображение результата, которое может дать идея, в чем проблема. https://jsfiddle.net/lakers1234/ek7fcx9L/Избегайте перекрывание planegeometry в Threejs
window.onload = createsphere();
function createsphere()
{
var controls,scene,camera,renderer;
function init()
{
var spriteResponse = [];
spriteResponse[0] = {ID:1, x: 0, y: 0, name:'Hello'};
spriteResponse[1] = {ID:2, x: 0, y: 0.01, name:'Hello world'};
spriteResponse[2] = {ID:3, x: 0, y: 0.5, name:'los Angles united states of america'};
spriteResponse[3] = {ID:4, x: 0.5, y: 0, name:'Canada'};
spriteResponse[4] = {ID:5, x: 0.25, y: 0.5, name:'London united kingdom' };
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
//camera.position.y = 1;
camera.position.z = 1 ;
var width = window.innerWidth;
var height = window.innerHeight;
renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(width, height);
document.body.appendChild(renderer.domElement);
/* ------------------------ создания геометрии сферы ---------- -------------------- */
var radius = 2.5;
var spheregeometry = new THREE.SphereGeometry(radius, 20, 20, 0, -6.283, 1, 1);
var texture = THREE.ImageUtils.loadTexture ('rbi00000083.jpg');
texture.minFilter = THREE.NearestFilter;
//var spherematerial = new THREE.MeshBasicMaterial({map: texture});
var spherematerial = new THREE.MeshBasicMaterial({color: '#A9A9A9'});
var sphere = new THREE.Mesh(spheregeometry, spherematerial);
scene.add(sphere);
scene.add(camera);
scene.autoUpdate = true;
controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.minPolarAngle = Math.PI/4;
controls.maxPolarAngle = 3*Math.PI/4;
}
Вы можете изменить значения x и y из массива spriteResponse? так как вы должны дать 0,1 разницу в значении y, чтобы избежать перекрытия – spankajd
@spankajd. Я не хочу напрямую изменять значение y в массиве spriteResponse. Сначала мне нужно определить, какая плоскость пересекается, а затем добавить новое значение к предыдущему значению, например y + newvalue. – lakers1234
@ lakers1234 Мне немного любопытно, почему бы вам не использовать 'THREE.Sprite()' вместо 'THREE.Plane()'? – prisoner849