V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
niceTeen84
V2EX  ›  数学

请教一个空间几何问题

  •  
  •   niceTeen84 · 2023-02-17 18:35:40 +08:00 · 1402 次点击
    这是一个创建于 651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已知:

    1. 货物在传送轨道上但是不一定放正(放正指:货物的中线和轨道的中线平行);
    2. 传送轨道可以调节前后、左右、上下调节;
    3. 货物是规则立方体可以取到顶点坐标(大地坐标系参考); 如何矫正放歪的货物与轨道平行。
    2 条回复    2023-02-18 02:20:09 +08:00
    Scorp
        1
    Scorp  
       2023-02-17 22:37:01 +08:00
    问题描述不大清楚。首先,什么叫可以调节前后、左右、上下?如果是指轨道自身可以上下左右前后移动,那这里就完全没有旋转自由度。以及你说的矫正,是要求计算货物矫正后相对于矫正前的相对旋转还是什么东西?
    对这个问题,如果是我理解的平面传送带,对于规则物体其实可以转化为平面问题解决。但我没想通平面传送带怎么调整物体姿态。
    necomancer
        2
    necomancer  
       2023-02-18 02:20:09 +08:00
    提问有点不明确,我按照我自己理解试试:把一个任意摆放的箱子“放正”,也就是箱子的取向与某个给定取向平行,并且放在一个特定的点上。那么有两个自由度,你需要定义 1.箱子的取向向量,2.箱子的位置。规则立方体是指正方体还是长方体?如果按照一般长方体处理,那么操作首先需要定义一个确定的向量,例如箱子质心到某个顶点的向量,以一个面(例如俯视面)一个对角之间的向量,假设向量为 u=p-q ,向量中心坐标可以当作质心处理,假设为 v=(p+q)/2, p,q 是平面上两个对角的坐标。那么你要做的是求一个旋转矩阵 R 使 u 对齐,例如前方,一个平移向量 a,使得 a+v 等于你要摆放的位置。以摆放位置为(0,0),前方为(0,1)为例,a=-v ,也就是求出 v 直接做平移即可,二维旋转比较简单,以正方形俯视面为例,对角线与( 0,1 )呈 45 或 135 度角时,中轴向前,你只需要求出 u 和( 0,1 )的夹角,我记得有个 arctan2 函数,值域是 0 到 2pi,所以直接 arctan2(u_x, u_y)(与 y 夹角)即可,然后根据对称性,求出旋转角 theta,使得 R(theta)u 最靠近 45/135/225/315 即可,这样可以保证旋转操作每次角度最小。如果是一般情况,即长方 /正方混在一起,那你需要俯视识别 4 个顶点,需要根据边长比算出“放正”的夹角,通常 phi=arctan(边长 1/边长 2 ),然后按照 phi,phi+90,phi+180,phi+270 处理。再进一步,如果你有长短边向前的要求,那么那选取相应的对角向量 u,按 phi,phi+180 处理。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1353 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.