任意三点求圆心算法

已知:startPoint、secondPoint、endPoint(不分先后)

求:圆心坐标

解:

var tempA1,tempA2,tempB1,tempB2,tempC1,tempC2,temp,x,y;

tempA1=startPoint.x-secondPoint.x; 

tempB1=startPoint.y-secondPoint.y;
tempC1=(Math.pow(startPoint.x,2)-Math.pow(secondPoint.x,2)+Math.pow(startPoint.y,2)-Math.pow(secondPoint.y,2))/2;
  
tempA2=endPoint.x-secondPoint.x;
tempB2=endPoint.y-secondPoint.y;
tempC2=(Math.pow(endPoint.x,2)-Math.pow(secondPoint.x,2)+Math.pow(endPoint.y,2)-Math.pow(secondPoint.y,2))/2;
        
temp=tempA1*tempB2-tempA2*tempB1;
if(temp==0){
    x=startPoint.x;
    y=startPoint.y;
}else{
    x=(tempC1*tempB2-tempC2*tempB1)/temp;
    y=(tempA1*tempC2-tempA2*tempC1)/temp;
}
new Point(x,y); //x  y为点的坐标

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值