问题标签 [rotational-matrices]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
483 浏览

r - 做右手转

我有一个问题,我有一堆长度并想从原点开始(假装我面对 y 轴的正端),我向右并沿 x 轴正向移动距离 length_i . 这时候我再右转,走length_i的距离,重复n次。我可以做到这一点,但我认为有一种更有效的方法可以做到这一点,而且我缺乏数学背景:

这给出了预期的结果:

这是一个情节:

这似乎缓慢而笨拙。我猜有比我在for循环中做的项目更好的方法来做到这一点。有什么更有效的方式来保持程序化权利?

在此处输入图像描述

0 投票
0 回答
1498 浏览

java - Java // 旋转矩阵 // 3D [ x,y,z ] // 关于原点的点;

简介 我一直在研究这个主题一段时间,但并没有完全掌握它。我查看了 stackoverflow 以及其他在线资源作为示例,但找不到相当相似的问题可供参考。任何帮助将不胜感激。

为了减少重复的数量,如果已经回答了此类问题,请通知我,以便我删除此问题;

目标:使用旋转矩阵围绕原点旋转 3D 空间中的点 [ x,y,z ];

问题说明:对上述主题的理解程度不足。实施的不确定性;

参考: http ://en.wikipedia.org/wiki/Rotation_matrix

代码结构:

0 投票
2 回答
195 浏览

java - Java // 数组 // 乘法 // For-loop;

Objective:使用旋转矩阵产生旋转;

问题定义:输出与预期不符;

预期输出:

产生的输出:

应用代码:

0 投票
1 回答
2769 浏览

vector - 如何在 Unity 3D 中相对于旋转坐标系计算四元数?

我正在尝试使用四元数旋转矢量,Quaternion.Euler(x,y,z)并按预期工作,但问题是,旋转是相对于世界坐标系完成的,而我想相对于矢量本身旋转。

所以我想把坐标系作为

所以我的代码是这样的:

但是我需要

所以我需要计算和localEuler的函数。eulermyVector

我怎样才能做到这一点 ?

谢谢你的帮助 !

我试过 :

它没有用。我想这是点积。

附言

Transform我认为这有一个s:的内置代码Transform.RotateAround(),但我需要用 a 来做Vector3,而不是 a Transform

0 投票
1 回答
123 浏览

math - 偏航旋转矩阵

我想设置旋转矩阵的偏航,以便使用此代码将对象指向特定位置

这将产生正确的结果,除了旋转是反向的,因此它不会跟随目标点,而是远离目标点旋转。

(使用 -atan2)对象跟随目标,但向右偏移 90 度。rotationZ 实现如下所示:

我正在使用 iOS OpenGL ES 2.0。这里似乎存在根本性错误,第一个版本应该是产生正确结果的版本?所有其他转换似乎都可以正常工作。这里有什么问题?我不知道在哪里寻找错误...

0 投票
1 回答
1225 浏览

c++ - 如何比较物体之间的相对旋转?

我在 3D 空间中有两个相同类型的对象(使用 OpenGL 来渲染它们)。这些对象存储 xyz 偏移和代表标准 4x4 旋转矩阵的旋转矩阵。

一个精简的例子:

我将 GLUI 用于 UI 控件,这使得以格式存储转换非常简单。

问题: 我需要为一个对象相对于另一个对象定义一个“正确”的方向。例如,如果第一个对象直接面向 z 轴,而第二个对象相同但也围绕 x 轴旋转了大约 45 度,则这将被视为“正确”并且我的函数会执行它们需要做的事情. 当然,这可能会有所不同,可能是相同的 z 但在 x 和 y 上旋转,或者甚至可能围绕每个轴旋转一点。“正确”旋转的定义将存储在对象中以供比较。

理想情况下,我希望做类似的事情:

这可以通过比较两个旋转矩阵来实现吗?我需要转换为四元数并使用它们吗?

这个问题是我发现的最接近我所问的问题,但它的不同足以令人困惑。

0 投票
1 回答
918 浏览

graphics - 为什么四元数由 [vector,w] 定义,为什么不由 [point,w] 定义?

四元数旋转定义了 3d 空间中的一个点并围绕该点的轴旋转。我试图理解为什么四元数旋转需要矢量和旋转,为什么不只是空间中的 3d 点和旋转?

例如:在下图中,一只手指向 3d 空间中的一个点,该点可以绕其轴旋转。 http://s29.postimg.org/ih79tirnr/quarternion.jpg

谢谢

0 投票
1 回答
306 浏览

javascript - 3D 旋转矩阵导致图像无限重复

基于对 3D 旋转矩阵的一些研究,我制作了这个 jsfiddle,它本身并不能很好地工作,因为你不能在外部视频或图像上使用 'ctx.getImageData()' (但如果你想尝试本地托管的视频源上的相同代码,它应该可以正常工作)。

大多数 3D 魔法发生在两个矩阵乘法中。对于图像的每个点,xyz 坐标乘以函数“rotatePoint”中的旋转矩阵,该函数将点“xyz”从原点“p”沿单位向量“u”的方向转换为旋转轴通过“theta”弧度。

其中“rho”是 sin(theta),“phi”是 cos(theta),theta 是旋转角度。

最后点乘以透视矩阵,在下面的函数中,将点从世界坐标转换为屏幕坐标。

现在,所有这些在大多数情况下都可以正常工作。但无论出于何种原因,3D 旋转都会导致图像沿旋转轴无限重复。这是一个示例屏幕截图:

在此处输入图像描述

有人知道为什么会这样吗?

0 投票
2 回答
1169 浏览

opengl-es - 旋转场景后如何平移相机?

我目前正在尝试在 Android 中可视化 OpenGL ES 2 中的建筑物。当我向左滑动时,整个场景应该向左移动(与右、下和上相同)。现在,当我将模型旋转 90° 时,轴被交换。当我向右滑动时,模型将移动到顶部而不是右侧(与另一个轴相同)。

如何在不影响当前场景旋转的情况下平移相机?当我使用手机时,我总是想将对象移动到我要滑动的方向。当我先调用 translate 时,翻译工作正常,但旋转有一些错误。

更新:我创建了大部分相机类(建议在答案中):

如何将一个向量围绕另一个向量旋转一个角度?

0 投票
1 回答
504 浏览

ios - 投影矩阵有什么用?

我一直在尝试分析 Apple 的 pARk(增强现实示例应用程序),在那里我遇到了以下功能,

带有以下参数的方法调用:

我看到这projection matrix是乘以rotation matrix(由 motionManager.deviceMotion API 获得)。投影矩阵有什么用?为什么要和旋转矩阵相乘?

为什么结果矩阵必须再次与 PointOfInterest 向量坐标相乘?

感谢这里的任何帮助。

示例代码链接在这里