Я новичок в трех js. Я пытаюсь преобразовать одну фигуру в другую фигуру. («Я нарисовал в одном квадратном объекте, и я нарисовал в другом одном квадратном объекте. Это два объекта Как объединить отображение двухугольной квадратной линии»). я пытался другим методом. Ниже мой код.
//method 1
function doubleSquareDraw(startX, startY, endX, endY, color){
var square = new THREE.Shape();
square.moveTo(startX, startY, 0);
square.lineTo(endX, startY, 0);
square.lineTo(endX, endY, 0);
square.lineTo(startX, endY, 0);
square.lineTo(startX, startY, 0);
var square2 = new THREE.Path();
square2.moveTo(startX + 4 , startY - 4 , 0);
square2.lineTo(endX - 4 , startY - 4 , 0);
square2.lineTo(endX - 4, endY + 4 , 0);
square2.lineTo(startX + 4 , endY + 4 , 0);
square2.lineTo(startX + 4 , startY - 4 , 0);
square.holes.push( square2);
var geometry = new THREE.BufferGeometry().setFromPoints(square.getPoints());
var doubleLineSquare = new THREE.Line(geometry, new THREE.MeshBasicMaterial({
color: color
}));
return doubleLineSquare;
}
//method 2
var bed = new THREE.Shape();
bed.moveTo(startX, startY, 0);
bed.lineTo(endX, startY, 0);
bed.lineTo(endX, endY, 0);
bed.lineTo(startX, endY, 0);
bed.lineTo(startX, startY, 0);
var geometry = new THREE.BufferGeometry().setFromPoints(bed.getPoints());
var bed = new THREE.Line(geometry, new THREE.MeshBasicMaterial({
color: "#000000"
}));
var bed2 = new THREE.Path();
bed2.moveTo(startX + 10, startY - 10, 0);
bed2.lineTo(endX - 10, startY - 10, 0);
bed2.lineTo(endX - 10, endY + 10, 0);
bed2.lineTo(startX + 10, endY + 10, 0);
bed2.lineTo(startX + 10, startY - 10, 0);
var geometry = new THREE.BufferGeometry().setFromPoints(bed2.getPoints());
var bed = new THREE.Line(geometry, new THREE.MeshBasicMaterial({
color: "#000000"
}));
var group = new THREE.Group();
group.add( bed );
group.add( bed2 );
return group;
}