问题标签 [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 投票
0 回答
148 浏览

android - 围绕 X 旋转会影响滚动。如何消除这种情况?

我正在使用 android 的 TYPE_ROTATION_VECTOR 传感器来确定围绕 x、y 和 z 的旋转,并以某种方式在我的应用程序中使用这些度量。但是当我围绕 X 轴旋转手机时,滚动值(围绕 Y 轴旋转)也会发生变化。我不希望那样。当我绕 X 旋转时,如何忽略滚动的变化?这是我的一段代码

0 投票
2 回答
1521 浏览

matlab - 围绕拟合线旋转轴 MATLAB

我目前对以下问题感到沮丧:

我有轨迹数据(即:经度和纬度数据),我对其进行插值以找到线性拟合(在 matlab 中使用 polyfit 和 polyval)。

我想做的是以 x 轴(经度轴)最终位于最佳拟合线上的方式旋转轴,因此我的数据现在应该位于该(旋转)轴上。

我尝试的是从拟合线的斜率(一级多项式的公式中的 m )评估旋转矩阵y=mx+q

[cos(m) -sin(m);sin(m) cos(m)]

然后将我的原始数据乘以这个矩阵......无济于事!

我不断获得一个图,其中我的数据位于中间,而不是在我期望它们所在的 x 轴上。

我错过了什么?

感谢您的任何帮助!

最好的祝福,

冬寂

0 投票
1 回答
1723 浏览

c# - C# 旋转矩阵

我正在编写一个 C# 程序,它有一个立方体对象,允许用户在 xy 和 z 轴上移动它。但是我希望他们也能够旋转它。

我的矩阵定义如下:public double[, ] matrix = new double[4, 4];

因此,例如,我能够通过此代码缩放立方体。

所以我的问题是。我如何使用相同的方法来旋转立方体,例如 x 轴?

编辑 - -

你好,

我已经想出了如何旋转它,但它是从左上角的方式进行的。

它怎么会从中心旋转?

0 投票
0 回答
1015 浏览

android - 反转旋转矩阵交换俯仰和滚动

我从 TYPE_ROTATION_VECTOR 向量值中得到了旋转矩阵。并尝试使用它来旋转我的应用程序中的对象。工作得很好。但我真正想要的是旋转与设备运动方向相反的对象。比如说,设备绕 x 轴旋转 30 度,我需要我的对象绕 x 轴旋转 -30 度。它必须有一种效果,就好像物体停留在它不考虑设备移动的地方一样。为此,我反转(转置)了旋转矢量。现在围绕 x 和 y 轴的旋转完全不正确,看起来它们被交换了。当我围绕 x 旋转设备时,对象围绕 y 旋转,反之亦然。我的一段代码:

mObjectGroup 是设备旋转时应该旋转的模型

...

编辑:当我沿 Y 轴旋转设备时,对象围绕 Z 轴旋转,当设备沿 X 轴旋转时,对象围绕 Y 轴旋转

0 投票
2 回答
2233 浏览

vector - 围绕特定点旋转 D3DXVECTOR3

这可能是一件非常简单的事情,但我对直接 x 的了解并没有达到我想要达到的水平。

目前我正在尝试创建一种在地形上移动的车辆。我试图通过在车辆周围创建一个正方形(4 个 D3DXVECTOR3 点)来使车辆识别地形,每个点都检测地形的高度并相应地调整车辆。

车辆是从 Microsoft 示例代码派生的简单对象。它有一个世界矩阵、坐标、旋转等。

我想要实现的是使这些点与车辆一起移动,当它移动时它们可以检测到高度的差异。这需要我在每次车辆移动时更新点,但我无法终生弄清楚如何让它们正确旋转。

所以总而言之,我正在寻找一种简单的方法来围绕原点(我的车辆坐标)旋转矢量。

这些点位于车轮附近,因此如果它起作用,无论车辆 y 轴旋转如何,它们都会留在那里。

这是我试过的:

这导致该点疯狂地旋转失控并离开地图。

BoxPoint 是指我试图旋转的向量。Vehicle当然是旋转的原点RotationY是它旋转的量。

这是这个正方形中 4 个向量中的 1 个的代码,但我假设一旦我得到 1 个,其余的只是复制粘贴。

无论我尝试什么,在完全离开地图的情况下,该点要么不动,要么失控。

这是我的对象类的片段

我在想有可能使用 D3DXVec3TransformCoord 来做到这一点

0 投票
1 回答
516 浏览

complexity-theory - Divide et impera 用于矩阵旋转

我试图从这个练习中解决第二个问题 b 和 d 子问题:http: //courses.engr.illinois.edu/cs473/sp2010/homework/hw1.pdf

我通过以下方式解决了b:2/b问题解决方案

我的第一个问题是:我的解决方案对问题 2/b 是否正确?我的第二个问题是:我应该在问题 2/d 中做什么?这对我来说有点奇怪。

感谢您的时间和帮助。

0 投票
0 回答
71 浏览

rotation - 如何旋转 3d 点

这可能是一个愚蠢的问题。但我只是想确定一下。给定一个 3d 点 p (x,y,z) 和旋转矩阵 R。旋转 R 后 p 的坐标是多少?是R * P吗?我做了一个实验,发现它并没有像我预期的那样给出结果。谢谢。

0 投票
1 回答
7708 浏览

python - python实现3D刚体平移和旋转

我一直在尝试解决如何使用 python 解决以下问题:

  1. 我们有构成刚体的点 a、b、c、d
  2. 一些未知的3D平移和旋转应用于刚体
  3. 我们现在知道 a、b、c 的坐标
  4. 我们要计算 d 的坐标

到目前为止我所知道的:

我无法解决的是如何在给定 a、b、c 的“新”坐标的情况下计算旋转和平移矩阵。

我可以看到,在一般情况下(非刚体),旋转部分是Wahba 的问题,但我认为对于刚体,应该有一些更快的方法来直接计算它,方法是使用点。

0 投票
2 回答
1121 浏览

java - Java Tetris - 使用旋转矩阵进行旋转

我正在用 Java 构建俄罗斯方块,并尝试使用线性代数来旋转由 4 个瓷砖组成的一块。

我的朋友正在解释这样做的方法是:

他说:

“为了澄清,你确实需要旋转每个点——也就是说,你需要为一块中的每个瓷砖旋转一个点。但不是为一块中的每个瓷砖旋转四个角。原点就像你把铅笔穿过一个一张纸,把铅笔转了一圈……铅笔所在的地方就是原点。”

“所以,如果你的棋盘上有一个 T 牌,牌在 (7,9) (8,9) (9,9), (8,10),它的原点在 (8,9)..”

所以我用坐标 (1, 3) (1, 2) (1, 1) (2, 2)... 原点 (1, 2)

然后他说:

“您将 Tiles 转换为相对于原点。也就是说,您将原点视为此旋转的新 (0, 0)。这就像从每个坐标中减去原点一样简单,得到 (7-8, 9-9), (8-8, 9-9), (9-8, 9-9), (8-8, 10-9) 或 (-1, 0) (0, 0) (1, 0) ) (0, 1)"

从每个坐标中减去原点 (1, 2)

(1-1, 3-2) (1-1, 2-2) (1-1, 1-2) (2-1, 2-2) =

(0, 1) (0, 0) (0, -1) (1, 0)

然后他说:

“现在使用旋转矩阵乘法旋转这四个坐标,就像我们一直在谈论的那样。”

在此处输入图像描述

最后他说:

“然后将原点坐标添加回每个结果坐标,现在你有了四个旋转的 Tile 坐标。”

从上面的矩阵中,我有 (0, -1) (0, 0) (0, 1) (-1, 0)... 所以我像他说的那样将这些添加到原点坐标 (1-1, 3+0) (1+0, 2+0) (1+0, 1+1) (2-1, 2+0) =

旋转坐标: (0, 3) (1, 2) (1, 2) (1, 2)

但是,看看我旋转的形状......这是完全错误的:

在此处输入图像描述

有什么想法为什么?

谢谢!

0 投票
4 回答
25001 浏览

three.js - Three.js:在场景角落显示世界坐标轴

这可能是一个非常基本的问题,但我还没有找到解决方案,它一直困扰着我。我想在相机的右下角显示指示世界坐标方向(x,y,z)的箭头,就像在 Maya 中所做的那样,以便在围绕对象旋转相机或在场景中移动时,您仍然可以识别世界坐标的方向。我尝试使用两种不同的方法来实现这一点,但到目前为止都没有奏效。

我有一个带有三个箭头的对象作为使用THREE.ArrowHelper该类的子对象,我们XYZ暂时将其称为。第一种方法是创建XYZ场景的一个子节点,并为其提供一个根据相机当前位置计算的位置加上相机指向的方向的偏移量并进行调整,使其出现在我想要的角落而不是中心的屏幕。我几乎已经完成了这项工作,因为箭头保持正确的旋转,但位置有点有趣,我停止沿着这条路线走,因为在移动相机时真的很“紧张”。我不确定这是性能问题还是其他问题。

第二种方法是XYZ使用局部位置偏移制作相机的子级,然后反转相机的旋转并应用反向旋转,XYZ使其与世界坐标相匹配。我似乎使用这种方法很接近,但我可以得到正确的位置,或者正确的旋转,而不是两者。

我目前正在使用代码XYZ.matrix.extractRotation( camera.matrixWorldInverse );为我提供正确的方向XYZ,但它的定位已关闭。如果我使用XYZ.matrixWorld.extractRotation( camera.matrixWorldInverse );,则位置保持正常(连接到相机),但方向不会改变。

如果有人有一个快速的技巧来让它工作,那将不胜感激。如果您有比我正在追求的更好的方法,那也会有所帮助。