news 2026/5/5 13:01:15

旋转标定的数学公式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
旋转标定的数学公式

旋转标定的数学公式

一 旋转中心标定

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);}}

二 使用

publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){try{// 拟合圆的三个点坐标varpoint1=(x:3332.24,y:1807.67);varpoint2=(x:3099.6,y:1922.86);varpoint3=(x:2838.07,y:2000.45);// 计算圆心varcenter=CircleFitter.FitCircleFromThreePoints(point1,point2,point3);MessageBox.Show($"圆心坐标: ({center.cx:F4},{center.cy:F4})");// 计算半径(使用第一个点)doubleradius=CircleFitter.CalculateRadius(center,point1);MessageBox.Show($"圆的半径:{radius:F4}");}catch(ArgumentExceptionex){Console.WriteLine($"错误:{ex.Message}");}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 22:48:19

从课本到实战:用 if-else 写一个真实可用的学院奖励统计小程序

摘要 在学习 C 语言 if 语句和 if-else 嵌套时&#xff0c;很多同学容易停留在“语法能背下来&#xff0c;但不知道怎么用”的阶段。 本文以教材中“交换两个变量并输出较大值”的示例为基础&#xff0c;把它放进一个真实的学校奖励统计场景中&#xff0c;完整演示&#xff1a;…

作者头像 李华
网站建设 2026/5/5 5:51:37

QJ小结

这个题目很有意思&#xff0c;它告诉我了一个很重要的事&#xff0c;编程考试可能要带草稿纸算规律&#xff0c;这个题目不把规律写下来容易弄错&#xff0c;一开始本想用数组的方法&#xff0c;但写完后发现用不接硬算且易 理解 上&#xff0c;可以直接硬算代码运行

作者头像 李华
网站建设 2026/4/30 23:56:40

Formily第三方UI库集成实战:从零到一的完整指南

Formily第三方UI库集成实战&#xff1a;从零到一的完整指南 【免费下载链接】formily &#x1f4f1;&#x1f680; &#x1f9e9; Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 项目…

作者头像 李华
网站建设 2026/5/6 2:05:48

Sketch MeaXure终极指南:告别繁琐标注的设计革命

Sketch MeaXure终极指南&#xff1a;告别繁琐标注的设计革命 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure 还在为设计稿标注而头疼吗&#xff1f;每次修改都要重新测量间距&#xff1f;开发同事总是抱怨标注不清晰&am…

作者头像 李华
网站建设 2026/4/30 17:56:45

面向高安全关键设施的空间视频智能感知与透明化管控关键技术研究

发布单位&#xff1a;镜像视界&#xff08;浙江&#xff09;科技有限公司本白皮书由镜像视界&#xff08;浙江&#xff09;科技有限公司基于其在空间视频智能感知、多源信息融合与空间态势管控领域的持续技术研究与工程实践编制完成。白皮书面向高安全关键设施这一典型复杂应用…

作者头像 李华