如何在 Three.js 中编写一个 getworldposition 函数?
How to write a getworldposition function in Three.js?
如何在 Three.js 中编写一个 getworldposition 函数,returns 一个向量?
这是我的代码,用于获取存储在向量 vec 中的 obj 的世界位置。
obj.updateMatrixWorld();
var vec= new THREE.Vector3();
vec.setFromMatrixPosition(obj.matrixWorld);
现在我想将这三行作为一个函数来使用:
var vector = getWorldPosition(obj);
这样做正确吗?
function getWorldPosition(obj)
{
obj.updateMatrixWorld();
var vec= new THREE.Vector3();
vec.setFromMatrixPosition(obj.matrixWorld);
return {vec.x, vec.y, vec.z}; // Like this?
}
尝试查看 Jerome Etienne 是如何构建他的 ObjCoord 库来获得灵感的:
https://github.com/jeromeetienne/threex.objcoord
但是有点过时了:
/**
* get the world position
* @return {THREE.Vector3} the world position
*/
THREEx.ObjCoord.worldPosition = function(object3d){
object3d.updateMatrixWorld();
var worldMatrix = object3d.matrixWorld;
var worldPos = new THREE.Vector3().getPositionFromMatrix(worldMatrix);
return worldPos;
}
你直接使用向量的方法是最新的三个版本的正确方法。
现在您可以使用 Object3D().getWorldPosition ( target ) 获取世界位置
target — 结果将被复制到这个 Vector3 中。
Returns 表示对象在世界中位置的向量 space。
示例:
const anyMesh = new THREE.Mesh(g,m)
let handVec = new THREE.Vector3()
anyMesh.getWorldPosition(handVec)
所以 handVec 是 anyMesh 的世界位置
更多细节你可以查看文档:https://threejs.org/docs/#api/core/Object3D
如何在 Three.js 中编写一个 getworldposition 函数,returns 一个向量?
这是我的代码,用于获取存储在向量 vec 中的 obj 的世界位置。
obj.updateMatrixWorld();
var vec= new THREE.Vector3();
vec.setFromMatrixPosition(obj.matrixWorld);
现在我想将这三行作为一个函数来使用:
var vector = getWorldPosition(obj);
这样做正确吗?
function getWorldPosition(obj)
{
obj.updateMatrixWorld();
var vec= new THREE.Vector3();
vec.setFromMatrixPosition(obj.matrixWorld);
return {vec.x, vec.y, vec.z}; // Like this?
}
尝试查看 Jerome Etienne 是如何构建他的 ObjCoord 库来获得灵感的:
https://github.com/jeromeetienne/threex.objcoord
但是有点过时了:
/**
* get the world position
* @return {THREE.Vector3} the world position
*/
THREEx.ObjCoord.worldPosition = function(object3d){
object3d.updateMatrixWorld();
var worldMatrix = object3d.matrixWorld;
var worldPos = new THREE.Vector3().getPositionFromMatrix(worldMatrix);
return worldPos;
}
你直接使用向量的方法是最新的三个版本的正确方法。
现在您可以使用 Object3D().getWorldPosition ( target ) 获取世界位置
target — 结果将被复制到这个 Vector3 中。 Returns 表示对象在世界中位置的向量 space。
示例:
const anyMesh = new THREE.Mesh(g,m)
let handVec = new THREE.Vector3()
anyMesh.getWorldPosition(handVec)
所以 handVec 是 anyMesh 的世界位置
更多细节你可以查看文档:https://threejs.org/docs/#api/core/Object3D