今天聊聊UVW平台用C#实现平移和旋转的功能。
众所周知,UVW平台功能强大,可以实现绕任意点旋转。本来我的工作就是视觉相关。
对于视觉来说, UVW平台在图像里面仅有一个旋转中心。因为相机位置固定, 我们只求出平台的旋转中心就可以做视觉引导。
进入正题。Talk is simple,code first.
下面R, θx1 , θx2 , θy1为供应商提供的固定参数, 和购买的平台有关,需要咨询供应商获取。
简单的理解就是把XYR方向的分量转成UVW对应的轴分量。 XYR分量可以叠加。

  /// <summary>/// UVW 类型数据,通常用于XYR增量转UVW增量/// </summary>public class DataUVW{#region Public-Membersprivate double R { get; set; } = 50;private double θx1 { get; set; } = 90 * Math.PI / 180;private double θx2 { get; set; } = 270 * Math.PI / 180;private double θy1 { get; set; } = 180 * Math.PI / 180;public double V { get; set; }public double W { get; set; }public double U { get; set; }#endregion#region Private-Members#endregion#region Constructors-and-Factories/// <summary>/// XYR移动量转UVW移动量/// </summary>/// <param name="MoveY">Y方向移动量</param>/// <param name="MoveX">X方向移动量</param>/// <param name="Rotatetion">旋转角度移动量</param>public DataUVW(double MoveY, double MoveX, double Rotatetion){Rotatetion *= -1;double rad = Rotatetion * Math.PI / 180;U = R * Math.Sin(rad + θy1) - R * Math.Sin(θy1);V = R * Math.Cos(rad + θx1) - R * Math.Cos(θx1);W = -1 * (R * Math.Cos(rad + θx2) - R * Math.Cos(θx2));//    W = R * Math.Cos(rad + θx2) - R * Math.Cos(θx2);double tempX1 = MoveX;double tempX2 = MoveX;double tempY1 = MoveY;U += tempY1;V += tempX1;W -= tempX2;}/// <summary>/// XYR移动量转UVW移动量/// </summary>/// <param name="_dataXYR">封装的XYR体类</param>public DataUVW(DataXYR _dataXYR){_dataXYR.R *= -1;double rad = _dataXYR.R * Math.PI / 180;U = R * Math.Sin(rad + θy1) - R * Math.Sin(θy1);V = R * Math.Cos(rad + θx1) - R * Math.Cos(θx1);W = -1 * (R * Math.Cos(rad + θx2) - R * Math.Cos(θx2));//    W = R * Math.Cos(rad + θx2) - R * Math.Cos(θx2);double tempX1 = _dataXYR.X;double tempX2 = _dataXYR.X;double tempY1 = _dataXYR.Y;U += tempY1;V += tempX1;W -= tempX2;}public DataXYR ToXYR(){return new DataXYR(U, V, W);}#endregion#region Public-Methods#endregion#region Private-Methods#endregion}

UVW 在C#中的代码实现相关推荐

  1. python如何调用文件_如何调用另一个python文件中的代码

    原博文 2017-07-10 15:56 − 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另 ...

  2. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  3. 【经验分享】如何优雅的在 Microsoft word中插入代码

    目录 一.借助工具 二.使用步骤 三.另辟蹊径 一.借助工具 打开这个网页PlanetB; 就是这个:http://www.planetb.ca/syntax-highlight-word 二.使用步 ...

  4. 使用webpack打包后,vscode中vue代码变白色的解决办法

    使用webpack打包后,vscode中vue代码变白色的解决办法 卸载vetur,重装vetur

  5. 用Handler的post()方法来传递线程中的代码段到主线程中执行

    自定义的线程中是不能更新UI的,但是如果遇到更新UI的事情,我们可以用handler的post()方法来将更新UI的方法体,直接传送到主线程中,这样就能直接更新UI了.Handler的post()方法 ...

  6. ECLIPSE远程调试出现如下问题 ECLIPSE中调试代码提示找不到源

    ECLIPSE远程调试出现如下问题  ECLIPSE中调试代码提示找不到源 如此提示是由于没有JAR包中找不到MAIN,可以手动添加或自己修改 利用ECLIPSE填写JAR中的MAIN方法后,就可以调 ...

  7. Github上如何在组织中创建代码仓库,并如何授予该组织中某个小组权限?

    如何在组织中创建代码仓库,并如何授予该组织中某个小组权限? 比如:在google这样的组织中,代码仓库应该属于组织所有的. 现在在组织中创建代码仓库,并且让开发小组能够访问到该组织新创建的代码仓库. ...

  8. Java中普通代码块,构造代码块,静态代码块区别

    Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...

  9. php跳过当前后续代码,PHP用continue跳过本次循环中剩余代码的注意点

    continue跳转语句用来跳过本次循环中指定条件的语句,并且继续执行其他的循环语句.下面这篇文章主要给大家介绍了关于在PHP中用continue跳过本次循环中剩余代码的一个注意点,文中的内容比较基础 ...

最新文章

  1. LeetCode40.组合总和|| JavaScript
  2. /proc文件系统读出来的数据是最新的吗?
  3. php函数的严格类型,严格模式
  4. socket 2.草稿。
  5. 【codevs1298】凸包周长,计算几何
  6. 局域网技术与组网工程实训
  7. linux系统下的打印机驱动下载,为 Linux 选择打印机 | Linux 中国
  8. 最优化 | 二次规划的基础知识理论 | 例题讲解
  9. 移动通信USSD业务探讨(转)
  10. 几何学在计算机中应用,分形几何在计算机图形学中的应用
  11. [树状数组模板] 洛谷P3368
  12. java使用itextpdf生成 pdf (支持table)分页
  13. python reshape函数参数-1(X.reshape(X.shape[0], -1).T)
  14. trouble processing xxxx.class: Ill-advised or mistaken usage of a core class (java.* or javax.*)
  15. jvm jni 及 pvm pybind11 大批量数据传输及优化
  16. win10重装系统修改信息
  17. 爱你的人和你爱的人 你选哪个?
  18. 【AI Studio平台基本操作】课程回看
  19. 用哪些特殊的字符方便作为分隔符
  20. 得物技术Filament Creator材质编辑工具的实现

热门文章

  1. 记2个月来,我在Csdn 掀起的微软面试风暴
  2. Zabbix---4 监控mysql服务并配置动作
  3. webshell使用方法-防止DDOS脚本-暴力破解-自动劫持root密码并转发密码到邮箱
  4. 有り様、状態、様子 の 区別
  5. Linux 中 的 vi 编辑模式 直接对文件进行修改~
  6. 【Oracle】删除不存在表时避免报错
  7. Jenkins+maven+SVN构建java项目中遇到的问题及解决
  8. IDEA中项目引入独立包打包失败问题解决(找不到包)
  9. MongoDB 最大连接数 设置失效的异常分析
  10. Spring Boot前后端分离项目Session问题解决