在 threeJS 中在对象的连接顶点的边缘上创建中间点



给定 Vector3 中的顶点数组 平方向量3 [{-1,1,0}, {1,1,0}, {-1,-1,0}, {1,-1,0}] 有什么方法可以对矩阵修改并返回 4 个 Verctor 吗?

在此处输入图像描述

如果我没看错,那么:

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 解决方案非常适用于您在图片中给出的内容。

最新更新