已知圆弧上两点坐标及圆半径,计算圆心坐标
2016-10-11 13:36
2683 查看
已知圆弧上两点坐标及圆半径,计算圆心坐标的JavaScript脚本代码 ,参考http://www.cnblogs.com/lhuan/p/5753847.html
样例
References
Bezier.js https://github.com/Pomax/bezierjs
A node.js and client-side library for (quadratic and cubic) Bezier curve work.
// // // 由圆弧上两点坐标及圆半径,计算圆心坐标的JavaScript脚本代码 // 参考http://www.cnblogs.com/lhuan/p/5753847.html // function Y_Coordinates( x, y, k, x0) { return k * x0 - k * x + y; } function calCircleCenter( p1, p2, r ) { var k = 0.0,k_verticle = 0.0; var mid_x = 0.0,mid_y = 0.0; var a = 1.0; var b = 1.0; var c = 1.0; var center1 = new Array(); var center2 = new Array(); k = (p2[1] - p1[1]) / (p2[0] - p1[0]); if(k == 0) { center1[0] = (p1[0] + p2[0]) / 2.0; center2[0] = (p1[0] + p2[0]) / 2.0; center1[1] = p1[1] + Math.sqrt(r * r -(p1[0] - p2[0]) * (p1[0] - p2[0]) / 4.0); center2[1] = p2[1] - Math.sqrt(r * r -(p1[0] - p2[0]) * (p1[0] - p2[0]) / 4.0); } else { k_verticle = -1.0 / k; mid_x = (p1[0] + p2[0]) / 2.0; mid_y = (p1[1] + p2[1]) / 2.0; a = 1.0 + k_verticle * k_verticle; b = -2 * mid_x - k_verticle * k_verticle * (p1[0] + p2[0]); c = mid_x * mid_x + k_verticle * k_verticle * (p1[0] + p2[0]) * (p1[0] + p2[0]) / 4.0 - (r * r - ((mid_x - p1[0]) * (mid_x - p1[0]) + (mid_y - p1[1]) * (mid_y - p1[1]))); center1[0] = (-1.0 * b + Math.sqrt(b * b -4 * a * c)) / (2 * a); center2[0] = (-1.0 * b - Math.sqrt(b * b -4 * a * c)) / (2 * a); center1[1] = Y_Coordinates(mid_x,mid_y,k_verticle,center1[0]); center2[1] = Y_Coordinates(mid_x,mid_y,k_verticle,center2[0]); } console.log( center1[0] + " " + center1[1] ); console.log( center2[0] + " " + center2[1] ); }
样例
var point1 = [40, 0] ; var point2 = [0, 40 ] ; var radius = 40 calCircleCenter( point1, point2, radius )
References
Bezier.js https://github.com/Pomax/bezierjs
A node.js and client-side library for (quadratic and cubic) Bezier curve work.
相关文章推荐
- 已知圆弧上两点坐标和半径求圆心坐标的算法(C++)
- 高德已知圆心,半径,计算圆弧坐标
- 已知两点坐标和半径求圆心坐标程序C++
- 使用python 在已知圆弧两个端点和中点坐标 计算圆弧的圆心坐标
- 已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解)
- c语言:有4个圆塔,已知圆心和半径,塔以外无建筑物。输入任一点坐标,求该点的建筑高度
- 已知圆心,半径,角度,求圆上的点坐标。
- 已知圆心和两点画圆弧(算法)(计算机图形)(C#)
- 已知圆心,半径,角度,求圆上的点坐标
- c语言:有4个圆塔,已知圆心和半径,塔以外无建筑物。输入任一点坐标,求该点的建筑高度
- iOS 根据圆心的坐标点、半径、当前手势所在的坐标点,计算出圆的运动轨迹坐标
- 已知圆心,半径,角度,求圆上的点坐标
- 【POJ 1981】Circle and Points(已知圆上两点求圆心坐标)
- 求内切圆的圆心和半径(已知三个点的坐标)
- 已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解)
- 已知圆心,半径,角度,求圆上的点坐标
- 已知圆心和两点画圆弧(算法)(计算机图形)(C#)
- 已知圆心,半径,角度,求圆上的点坐标
- 已知两点坐标,计算汽车行驶的方向【转】
- 已知圆心和两点画圆弧(算法)(计算机图形)(C#)