UE4 坐标转换 之 CAD 坐标转UE

项目场景:

获取到一组由机器自动识别的cad点位数据,需要映射到ue场景里,将这些点位标识出来


问题描述

直接将点位映射,通过transform变换,无法直接映射到正确的场景位置上
在这里插入图片描述

原因分析:

因为cad是用的是右手坐标系,而ue用的是左手坐标系,所以在转换的时候需要将坐标系统一
右手坐标系转左手坐标系 将数据VV(1,-1,1)
单位也是需要注意的,我这里cad数据单位是mm,ue是cm 所以要cad点位数据需要
0.1

解决方案:

暂时两种解决方案

  1. 用子组件与父组件的关系来获取相对位置
  2. 用点位数据的映射关系:scale、rotation、 location offset来反推

首先,确定好换算的actor的位置,必须为 接收到的数据的计算原点
如图,这个是数据来源的原点
在这里插入图片描述

一 子父组件关系

  1. 在Actor中创建两组子组件组,一组是参考点原始位置数据,一组是映射到ue场景的位置数据
    在这里插入图片描述
  2. 将参考点 ABCD在场景中的位置 A1 B1 C1 D1 摆好,这里用蓝色球标识
    在这里插入图片描述
  3. 回到编辑器 ,通过调整SceneSource的transform面板,将位置与SceneReference贴合
    PS:只能通过修改SceneSource来贴合场景的位置,并且顺序需要一样,改旋转旋转,该乘-1的乘-1,由于这里需要右手坐标系转左手坐标系,所以在scale里乘了 -1
    在这里插入图片描述
  4. 看到sceneSource下的cube了吗,这个是为了动态设置位置,然后通过它获取世界位置的,这里写了个方法,方便调用
    在这里插入图片描述
  5. 直接输入获取的原始数据,转换好之后就是ue的世界位置了
    在这里插入图片描述
    在这里插入图片描述

点位数据映射

  1. 与父子组件做法一样,做四个参考点在ue世界的位置,注意顺序需要一致
    在这里插入图片描述
  2. 计算长度倍数,绕z轴旋转量(yaw),以及两个向量的偏移量
    在这里插入图片描述
  3. 封装一个转换函数,通过上一步计算的倍数,旋转量以及偏移量,反推并转换成世界坐标
    在这里插入图片描述
  4. 直接输入获取的原始数据,转换好之后就是ue的世界位置了
    在这里插入图片描述
    在这里插入图片描述
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值