在连接顶点的边缘上创建中间点'三个对象中的一个对象

时间:2017-07-05 09:46:01

标签: math 3d three.js

给出Vector3中的Vertices数组 square vectors3 [{-1,1,0},{1,1,0},{-1,-1,0},{1,-1,0}] 有没有什么办法可以在Matrix修改并返回4个Verctor?

enter image description here

1 个答案:

答案 0 :(得分:0)

如果我找对你,那么:

var angle = Math.PI / 4; // rotate 45 deg CCW, negative angle is CW
var m = new THREE.Matrix4();
m.set(
   Math.cos(angle), Math.sin(angle), 0, 0,
  -Math.sin(angle), Math.cos(angle), 0, 0,
   0              , 0              , 1, 0,
   0              , 0              , 0, Math.sqrt(2) // diagonal length is square root of 2 times of side length
);

var originals = [
  new THREE.Vector3(-1,  1, 0),
  new THREE.Vector3( 1,  1, 0),
  new THREE.Vector3(-1, -1, 0),
  new THREE.Vector3( 1, -1, 0)
];

function applyMatrix(points, matrix4){
  var result = [];
  points.forEach((point)=>{
    result.push(point.clone().applyMatrix4(matrix4));
  })
  return result;
}

var images = applyMatrix(originals, m);

jsfiddle示例r86

PS解决方案特别适用于您在图片中提供的内容。