Я разрабатываю инструмент для рисования фигур в ThreeJS. Я нарисовал линию, квадрат, круг, прямоугольник, треугольник, эллипс и т. Д. На мышь вниз + успешно перетащить. Теперь я хочу редактировать эти фигуры, такие как масштабирование, перемещение и вращение. Как получить углы и поставить точки в углах, где пользователь может мышью + перетаскивать, чтобы масштабировать, перемещать точки и т. Д.
function onMouseMove(event) {
if(edit) {
event.preventDefault();
if ( selectedObject ) {
selectedObject.material.color.set( '#49BFFE' );
selectedObject = null;
}
var intersects = getIntersects( event );
if ( intersects.length > 0 ) {
var res = intersects.filter( function ( res ) {
return res && res.object;
} )[ 0 ];
if ( res && res.object ) {
selectedObject = res.object;
selectedObject.material.color.set( '#f00' );
console.log(selectedObject)
}
}
}
}
Код для создания фигур выглядит следующим образом:
this.onMouseDown = function( relative ) {
var geometry = new THREE.PlaneBufferGeometry( 1, 1);
var material = new THREE.MeshBasicMaterial({ color: 0x49BFFE, wireframe: false });
square = new THREE.Mesh(geometry, material);
scope.group.add(square);
}
this.onDrag = function( clientX, clientY ) {
var scale = Math.abs(clientX) + Math.abs(clientY);
if(scale == 0) scale = scale + 0.1;
square.scale.set(scale, scale, 0.1);
}