V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
JConlee
V2EX  ›  问与答

关于四元数、欧拉角与角度变换

  •  
  •   JConlee · 2015-04-01 14:25:38 +08:00 · 2219 次点击
    这是一个创建于 3306 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做一个计算机图形的项目,其中用到了一个角度变换的知识。我数学基础不是太好,不是很明白,向大家请教一下。

    三维空间中有一物体,我要对其进行多次的角度变换,使其尽量、近似于达到每一个可能的朝向。
    我的初步想法是用欧拉角,从(0,0,0)开始,每一次改变一点角度(0,0,+△a),满360°就进位上去,直到达到(360,360,360)。

    我不是很清楚万向节锁、四元数这些数学概念,不知道上述思路能不能实现我的需求。或者应该换用四元数来表示角度变换,或者还有更好的解决思路。

    请大家不吝赐教,谢谢。

    4 条回复    2015-04-03 15:59:02 +08:00
    27
        1
    27  
       2015-04-01 20:31:38 +08:00
    「使其尽量、近似于达到每一个可能的朝向」这句话无法理解
    JConlee
        2
    JConlee  
    OP
       2015-04-01 20:41:47 +08:00
    @27 额。。。就是让他转向每个方向。就像球心与球面上每个点的连线。
    27
        3
    27  
       2015-04-01 21:19:16 +08:00   ❤️ 1
    @JConlee

    一个物体就是很多个点,所以我们只讨论一个点

    本题可以简化为:空间中一个点用何种方法旋转可以使得轨迹为一个球面

    1. 让这个点绕一个轴旋转360°
    2. 轴自身绕一个与之正交的轴旋转360°,同时重复1

    (从我的角度看类似二重积分)

    我没怎么接触过欧拉角之类的东西,不太确定你的方法会不会有重复或者漏的,不过上面的方法可以保证不重不漏

    看楼下有没有更好的办法
    27
        4
    27  
       2015-04-03 15:59:02 +08:00   ❤️ 1
    又想了一下,你的方法也不会有重复的,只不过你的需要三层循环
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2775 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:37 · PVG 20:37 · LAX 05:37 · JFK 08:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.