日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

三点法创建圆

發布時間:2025/3/18 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三点法创建圆 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

包含頭文件:#include <math.h>

求冪函數:long lpow = pow(x,y);//其作用是計算x的y次方。x、y及函數值都是double型

絕對值: double dfabs = fabs(x ); //求 double 型x的絕對值 , 計算|x|, 當x不為負時返回 x,否則返回 -x

開平方: float sqrt (float),double sqrt (double),double long sqrt(double long) // 一個非負實數的平方根, 注意沒有sqrt (int),但是返回值可以為int

算法原理為:

假設圓心坐標為(x,y,z) ,已知的三點坐標分別為(x 1 ,y 1 ,z 1 ) 、 (x 2 ,y 2 ,z 2 )和(x 3 ,y 3 ,z 3 ) ,可以直接建立的方程是:

計算出圓心位置之后,就可以使用計算兩點距離的函數,計算出圓形的半徑。

// 使用數學方法 double xysm, xyse, xy; AcGePoint3d ptCenter; double radius; xy = pow(pt1[X], 2) + pow(pt1[Y], 2); xyse = xy - pow(pt3[X], 2) - pow(pt3[Y], 2); xysm = xy - pow(pt2[X], 2) - pow(pt2[Y], 2); xy = (pt1[X] - pt2[X]) * (pt1[Y] - pt3[Y]) - (pt1[X] - pt3[X]) * (pt1[Y] - pt2[Y]); // 判斷參數有效性 if (fabs(xy) < 0.000001) { AfxMessageBox("所輸入的參數無法創建圓形!"); return 0; } // 獲得圓心和半徑 ptCenter[X] = (xysm * (pt1[Y] - pt3[Y]) - xyse * (pt1[Y] - pt2[Y])) / (2 * xy); ptCenter[Y] = (xyse * (pt1[X] - pt2[X]) - xysm * (pt1[X] - pt3[X])) / (2 * xy); ptCenter[Z] = 0; radius = sqrt((pt1[X] - ptCenter[X]) * (pt1[X] - ptCenter[X]) + (pt1[Y] - ptCenter[Y]) * (pt1[Y] - ptCenter[Y])); if (radius < 0.000001) { AfxMessageBox("半徑過小!"); return 0; }

// 使用幾何類

AcGeCircArc2d geArc(pt1, pt2, pt3); AcGePoint3d ptCenter(geArc.center().x, geArc.center().y, 0);

?

轉載于:https://my.oschina.net/u/2930533/blog/1578117

總結

以上是生活随笔為你收集整理的三点法创建圆的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。