大家好你们好!
我已经问过关于绕任意轴旋转的问题,并且在#1219和#1220中得到了明确的答案。
但是,仍然不清楚如何围绕其边缘之一旋转多维数据集(如果存在,任何人都可以共享这样的代码)。
#1219中发布了两个功能:
function rotateAroundObjectAxis( object, axis, radians ) { .. }
和
function rotateAroundWorldAxis( object, axis, radians ) { .. }
它们使我可以绕通过其边界框中心的任意轴旋转多维数据集。
我需要的是绕任意轴旋转对象,该轴不一定经过对象的中心。
如何正确地做到这一点?
抱歉,如果我对此感到有些烦恼,但我想实现这样的功能。
谢谢。
PS似乎我需要一个看起来像这样的函数:
函数RotateAroundArbitraryAxis(object,axisDirection,axisBasePoint,radians){..}
by axisBasePoint我的意思是指定轴经过的点。
我在互联网上读到,这样的轮换应该分几个步骤进行:
我理解正确吗?
如何用three.js执行这样的操作?
我试图在Three.js中相互乘以不同的(平移/旋转)矩阵,但没有得到所需的结果:-(
非常感谢。
那这样的东西呢?
var dummy = new THREE.Object3D();
dummy.position.x = 50;
dummy.position.z = 50;
scene.add( dummy );
var cube = new THREE.Mesh( new THREE.CubeGeometry( 100, 100, 100 ), new THREE.MeshBasicMaterial() );
cube.position.x = - 50;
cube.position.z = - 50;
dummy.add( cube );
谢谢回复。
不幸的是,无论我如何称呼,示例中的多维数据集仍然绕着穿过其中心的局部轴旋转:
function rotateAroundObjectAxis( object, axis, radians ) { .. }
或者
function rotateAroundWorldAxis( object, axis, radians ) { .. }
我真正想弄清楚的是如何移动特定对象的旋转轴。
非常感谢。
您是否尝试过旋转假人/容器而不是立方体?
好点子。 它以这种方式工作。
但是为什么它不是那么拘谨:-)?
我应该使用我在最初的文章中建议的函数进行矩阵算术运算,或更方便一些。
function rotateAroundArbitraryAxis( object, axisDirection, axisBasePoint, radians ) { .. }
by axisBasePoint我的意思是指定轴经过的点。
亲切的问候。
@oosmoxiecode糟糕! 是的,在我的摘要中忘记了这一点。
@地主好吧,对我来说很简单。 它甚至不需要矩阵知识;)我想这只是以不同的方式思考的问题……无论哪种方式,在内部,相同的矩阵计算都在发生。
最有用的评论
那这样的东西呢?