标签: rotational-matrices

旋转矩阵的特征 - 重新正交化

在乘以大量旋转矩阵之后,由于舍入问题(去正交化),最终结果可能不再是有效的旋转矩阵

重新正交化的一种方法是遵循以下步骤:

  1. 将旋转矩阵转换为轴角度表示(链接)
  2. 将轴角转换回旋转矩阵(链接)

Eigen库中有什么东西可以通过隐藏所有细节来做同样的事情吗?或者有更好的食谱吗?

由于特殊的奇点情况,必须小心处理此过程,因此如果Eigen为此提供了更好的工具,那将是很好的.

algorithm math rotation eigen rotational-matrices

8
推荐指数
3
解决办法
5472
查看次数

四元数和数值稳定性

我正在学习单位四元数以及如何使用它们来表示和组合旋转.维基百科称它们在数值上比矩阵表示更稳定,但没有给出参考.任何人都可以向我解释(最好用一些数学推理)为什么使用单位四元数来处理旋转(例如对于OpenGL应用程序而不是旋转矩阵)在数值上更稳定?是因为避免了万向节锁?

math rotation quaternions rotational-matrices numerical-stability

8
推荐指数
2
解决办法
3735
查看次数

360度后停止旋转图像

我试图从它的中心点旋转图像单个圆但我不能停在欲望位置,因为我可以做旋转但我想停止旋转之后360'(1 round).

public class RotateRoundActivity extends Activity implements OnTouchListener
{

    private ImageView dialer;
    //private float y=0;
    private float x=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        dialer = (ImageView) findViewById(R.id.big_button);
        dialer.setOnTouchListener(this);
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
    //  double r=Math.atan2(event.getX()-dialer.getWidth()/2, dialer.getHeight()/2-event.getY());

        double r=Math.atan2(event.getX()-dialer.getWidth()/2, dialer.getHeight()/2-event.getY());
        int rotation=(int)Math.toDegrees(r);
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                break;
            case MotionEvent.ACTION_MOVE:
                x=event.getX();
              //  y=event.getY();
                updateRotation(rotation);
                break;
            case MotionEvent.ACTION_UP:
                break;
        }//switch       

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

旋转方法@

    private void updateRotation(double rot){
        float newRot=new Float(rot); …
Run Code Online (Sandbox Code Playgroud)

android rotational-matrices

7
推荐指数
1
解决办法
1718
查看次数

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

我一直试图找出如何使用python解决以下问题:

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

到目前为止我所知道的:

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

我可以看到,在一般情况下(非刚体),旋转部分是Wahba的问题,但我认为对于刚体,应该有一些更快的方法直接计算它,通过使用一组正交单位向量要点.

python computational-geometry rotational-matrices

7
推荐指数
1
解决办法
3903
查看次数

GLM 从 vec3 制作旋转矩阵

我正在制作一个游戏,我需要弹丸面向它的前进方向。我知道它的方向,我需要制作一个转换矩阵,使我可以将射弹模型方向 (1, 0, 0) 或正 X 轴与任何任意向量对齐。我怎么能在 glm 中做到这一点?

c++ axis matrix rotational-matrices glm-math

7
推荐指数
2
解决办法
6391
查看次数

OpenCV Equirectangular旋转

由于我对投影和旋转矩阵的数学理解(几乎为零),我目前仍坚持使用OpenCV在360°图像上实现等角旋转.

这种轮换的结果正如您在此处看到的那样:https://www.youtube.com/watch?v = l1N0lEKIeLA

我在这里找到了一些代码:https://github.com/FoxelSA/libgnomonic/wiki/Equirectangular-rotation_v0.1但是我没有成功将它应用到opencv

如果有人知道如何将它应用于OpenCV Mat和Pitch,Yaw,Roll角度,我们将非常感激!

谢谢!

c++ opencv map-projections rotational-matrices

7
推荐指数
1
解决办法
581
查看次数

使用 Open3D 将点云与地板(平面)对齐

社区,

\n

我正在尝试使用 Open3D 将点云与检测到的地板对齐。到目前为止,我实施了以下步骤(此答案的一部分):

\n
    \n
  1. 使用 Open3D 的平面分割检测地板
  2. \n
  3. 将平面平移到坐标中心
  4. \n
  5. 计算平面法线与 z 轴之间的旋转角度
  6. \n
  7. 计算旋转轴
  8. \n
  9. 使用 Open3Ds 函数旋转点云get_rotation_matrix_from_axis_angle(参见3
  10. \n
\n

结果还不错,但我必须在最后使用优化因子以获得更好的结果。是否有错误或更简单/更精确的对齐方式?

\n
# See functions below\n\n# Get the plane equation of the floor \xe2\x86\x92 ax+by+cz+d = 0\nfloor = get_floor_plane(pcd)\na, b, c, d = floor\n\n# Translate plane to coordinate center\npcd.translate((0,-d/c,0))\n\n# Calculate rotation angle between plane normal & z-axis\nplane_normal = tuple(floor[:3])\nz_axis = (0,0,1)\nrotation_angle = vector_angle(plane_normal, z_axis)\n\n# Calculate rotation axis\nplane_normal_length = …
Run Code Online (Sandbox Code Playgroud)

python 3d numpy rotational-matrices open3d

7
推荐指数
0
解决办法
5771
查看次数

使用Roll,pitch和Yaw或Quaternion或Rotation Matrix计算CMAttitude的海拔高度和方位角

我很震惊.我想将iPhone的CMAttitude信息转换为海拔高度(0到90度)和方位角(0到360度).我已经google了一下并且讨论了一些讨论它的线程,但没有一个线程得到肯定的答案,大多数讨论Quaternion和Euler角度的文章都是太多的数学物质进入我的大脑!

是否有一些开源材料可以轻松完成这项任务?或者有人编写代码来执行此转换?

编辑:首先,抱歉这么抽象!

方位角是指设备所指向的地球表面上的方向.像北= 0度,东北= 45度,东= 90度,南= 180度,依此类推.范围在0度到360度之间:

在此输入图像描述

海拔高度是从地球平面到天空中物体的角度: 在此输入图像描述

谢谢,

拉吉

iphone cocoa-touch quaternions euler-angles rotational-matrices

6
推荐指数
1
解决办法
5848
查看次数

剪切矩阵作为基本转换的组合?

我知道旋转,缩放,平移等的变换矩阵.我也知道剪切变换的矩阵.现在,我需要有剪切矩阵 -

[1 Sx 0]
[0 1  0]
[0 0  1]
Run Code Online (Sandbox Code Playgroud)

以其他上述变换的组合形式.尝试搜索,尝试头脑风暴,但无法罢工!谢谢!

graphics transformation matrix linear-algebra rotational-matrices

6
推荐指数
2
解决办法
1万
查看次数

我们如何在不修改场景树结构或几何体的情况下更改 Three.js 对象的旋转原点(枢轴点)?

我知道我们可以让对象有一个新的父对象作为枢轴,或者我们可以调整网格内的几何位置。

但是,我们如何在不重新指定对象的父对象或修改对象的父对象,并且不修改对象的几何形状(如果它是网格)的情况下在数学上实现这一点?

换句话说,我们需要对它的变换矩阵(或部分、旋转、位置、四元数等)做些什么才能达到相同的效果,同时满足上述不接触父级或几何体的要求?

javascript transform matrix rotational-matrices three.js

6
推荐指数
1
解决办法
5001
查看次数