C++实现已知圆的任意三点求圆心和半径 您所在的位置:网站首页 已知圆的标准方程如何求半径公式 C++实现已知圆的任意三点求圆心和半径

C++实现已知圆的任意三点求圆心和半径

2024-07-13 05:36| 来源: 网络整理| 查看: 265

原理:圆上的任意两点的连线称作弦,弦的中垂线必过圆心,取三点组成的两条弦的中垂线的交点,即为圆心,再通过圆心求半径.

其中三点坐标为  (dx1,dy1)   (dx2,dy2)  (dx3,dy3)

h1 h2 是弦的的中垂线的 斜率    x  y  为圆心坐标   radius 为半径

double midx1,midy1,midx2,midy2; double h1,h2; //求前两个点的中心点 midx1 = (dx1 + dx2) / 2; midy1 = (dy1 + dy2) / 2; //两条垂线斜率乘积为 -1 h1 = - (dx2 - dx1) / (dy2 - dy1); //求后两个点的中心点 midx2 = (dx2 + dx3) / 2; midy2 = (dy2 + dy3) / 2; //两条垂线斜率乘积为 -1 h2 = - (dx3 - dx2) / (dy3 - dy2); //对应的垂线表示为 // y = h1(x - midx1) + midy1; // y = h2(x - midx2) + midy2; //转化得 double x = (midy2 - midy1 + midx1*h1 - midx2*h2) / (h1 - h2); double y = h1 * ( x - midx1) + midy1; double radius = _hypot(fabs(x - dx1), fabs(y - dy1));

效果



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有