当前位置: 首页 > news >正文

VP引导定位软件-旋转标定

VP引导定位软件-旋转标定

一 确定通讯协议

Rotate,Angle,第几个点 Rotate,-20,1Rotate,-10,2Rotate,0,3Rotate,10,4Rotate,20,5

二 解析上位机数据

elseif(GlobalParameters.SoftModel=="Rotate"){// 如果是第一个点,则清空之前的数据if(Convert.ToInt32(msg.Split(',')[2])==1){// AlgorithmService.Instance.ClearRotateCali();}}

三 算法实现

/// <summary>/// 旋转点坐标/// </summary>publicList<Double>ImageX_Rotate_List=newList<Double>();publicList<Double>ImageY_Rotate_List=newList<Double>();
/// <summary>/// 添加旋转标定的点/// </summary>/// <param name="imageX"></param>/// <param name="imageY"></param>publicvoidAppendCirclePoint(doubleimageX,doubleimageY){ImageX_Rotate_List.Append(imageX);ImageY_Rotate_List.Append(imageY);}
/// <summary>/// 生成旋转中心标定/// </summary>publicvoidGenRotateCalibrationFile(outDoubleCenterX,outDoubleCenterY){if(ImageX_Rotate_List.Count==5){CenterX=0;CenterY=0;MessageBox.Show("生成旋转中心成功!");}else{CenterX=0;CenterY=0;}}

CircleFitter

publicclassCircleFitter{/// <summary>/// 通过三个点计算圆心坐标/// </summary>/// <param name="point1">第一个点 (x1, y1)</param>/// <param name="point2">第二个点 (x2, y2)</param>/// <param name="point3">第三个点 (x3, y3)</param>/// <returns>圆心坐标 (cx, cy)</returns>publicstatic(doublecx,doublecy)FitCircleFromThreePoints((doublex,doubley)point1,(doublex,doubley)point2,(doublex,doubley)point3){// 解法基于三点确定一个圆的几何原理// 设圆心为 (cx, cy),则有:// (x1-cx)² + (y1-cy)² = (x2-cx)² + (y2-cy)² = (x3-cx)² + (y3-cy)² = r²doublex1=point1.x,y1=point1.y;doublex2=point2.x,y2=point2.y;doublex3=point3.x,y3=point3.y;// 计算中间变量doubleA=x2-x1;doubleB=y2-y1;doubleC=x3-x1;doubleD=y3-y1;doubleE=A*(x1+x2)+B*(y1+y2);doubleF=C*(x1+x3)+D*(y1+y3);doubleG=2*(A*(y3-y1)-B*(x3-x1));// 避免除以零(三点共线的情况)if(Math.Abs(G)<1e-10){thrownewArgumentException("三点共线,无法确定唯一的圆");}// 计算圆心坐标doublecx=(D*E-B*F)/G;doublecy=(A*F-C*E)/G;return(cx,cy);}/// <summary>/// 计算圆的半径/// </summary>publicstaticdoubleCalculateRadius((doublex,doubley)center,(doublex,doubley)point){doubledx=point.x-center.x;doubledy=point.y-center.y;returnMath.Sqrt(dx*dx+dy*dy);}}
http://www.jsqmd.com/news/249014/

相关文章:

  • 2026 精选 AI 论文工具全攻略:从全流程到专项场景精准适配
  • 操作自动化测试如何实现用例设计实例?
  • 台达AS系列PLC Modbus TCP网口上位机通信的C#监控与数据报表生成
  • 选择高效服装管理ERP系统的最佳推荐与比较分析
  • 工程材料企业数据采集系统十大解决方案深度解析:从技术挑战到架构实践
  • Nacos03:Nacos 服务端开启鉴权
  • 接口测试:加密和签名
  • 冬之华章,人间暖梦
  • MySQL数据可视化实战:从查询到图表
  • 什么是XSS攻击?分为哪几类?
  • 有哪些提供免抠PNG图片的网站?
  • C语言造轮子:从零打造底层利器
  • Windows权限提升基础知识和命令
  • 2026AI白皮书启示:婚姻诊断系统的技术解剖与测试攻坚战
  • 静态代理IP+facebook账号,养号“神器”!
  • Mysql数据库常见函数(下)——日期时间函数
  • 什么是逆向工程?应用领域有哪些?收藏这篇让你摸透逆向工程
  • Dify 结合 Coze MCP 工具实现智能图片生成:完整教程
  • 【强烈收藏】告别拖拽节点:Agent + Skills 架构打造可进化数字员工
  • 实战:爬取全网招聘数据并搭建分析平台
  • 缩短交付周期:汽车企业如何通过计划智能体实现高效协同?
  • 猿声电子皮肤量产,维他Vbot筹备出海,微软Mu模型落地,Figure升级Helix系统
  • Mysql数据库常见函数(中)——数值函数
  • 【珍藏】一文读懂A2UI:让AI Agent从“只会聊天“到“能做界面“的交互革命
  • ue 缓存 使用笔记
  • 天津大学_人工智能报告:历史、现状和未来
  • 2026年大模型就业趋势全解析:程序员收藏必备,行业前景指南
  • ‌游戏测试中的场景模拟实战操作
  • AI专题报告:AI模型迭代聚焦工程能力,AI应用落地锚定高ROI场景
  • 收藏!国产AI大模型医疗落地全景解析:10大核心场景+从入门到实战学习指南