已知圆上两点坐标和半径求圆心
牛客题目链接
已知两点坐标可求出直线方程,当然也包括斜率了,已知斜率tan a,最近刚学的高数上,可根据三角函数的反函数(C++ atan2(y,x))求出角度(小心为double类型),用到圆心到两点中点这条边可求出圆心。
/**遇到此类型的题目就是先确定圆心再去判断其他店是否在圆上或者圆内**/#include <map>
#include <queue>
#include <string>
#include<iostream>
#include<stdio.h>
#include<string.h>
#include <algorithm>
#include <math.h>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
typedef pair<ll,ll> pii;
const int maxn=2e5+1010;
#define inf 0x3f3f3f3f
#define sf scanf
#define pf printf
const int mod=998244353;
const int MOD=10007;
const double eps=1e-6;ll r,num;struct Point
{double x,y;Point(){}Point(double tx,double ty){x=tx;y=ty;}
}p[200];double dist(Point p1,Point p2)
{return sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2));///求出两点距离
}Point Center(Point p1,Point p2)
{Point mid = Point((p1.x+p2.x)/2,(p1.y+p2.y)/2);///求得中点坐标double angle = atan2(p1.x-p2.x,p2.y-p1.y); ///求出极坐标double d = sqrt(r*r-pow(dist(p1,mid),2));///求出侧边也就是圆心到其中点的距离return Point(mid.x-d*cos(angle),mid.y-d*sin(angle));///求出圆心坐标
}int main()
{cin>>r;cin>>num;for(int i=0;i<num;i++)cin>>p[i].x>>p[i].y;ll ans = 1;for(int i=0;i<num;i++){for(int j=i+1;j<num;j++){if(dist(p[i],p[j]) > 2.0*r) continue;///两点距离比直径大直接退出Point center = Center(p[i],p[j]);///求出圆心的ll cnt = 0;for(int k=0;k<num;k++)if(dist(center,p[k]) < 1.0*r+eps) cnt++;///求这个求出来的圆心点到个点的距离是否瞒住条件ans = max(ans,cnt);///求出最大值}}cout<<ans<<endl;return 0;
}
已知圆上两点坐标和半径求圆心相关推荐
- 转 已知两点坐标和半径求圆心坐标程序C++
数学思想:利用圆方程和直线方程 已知两点坐标和半径求圆心坐标程序 #include <iostream> #include <fstream> #include <cma ...
- 已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解)
已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解) 在一个二维平面上给定两个圆的圆心横纵坐标.半径共6个参数, 求交点. 这个问题无非是解二元二次方程组.普通二元二次方程联立消元求解的困难在于 ...
- 已知圆上的三个点求此圆的周长
The Circumference of the Circle 本题在ZOJ上题号是1090,在POJ上是2242.题目描述如下: Description To calculate the circu ...
- 已知直线上两点求其一般式
已知直线上两点P1 P2,求直线的一般式方程. 已知直线上的两点P1(X1,Y1) P2(X2,Y2), P1 P2两点不重合.求该直线的一般式方程AX+BY+C=0 解当x1=x2时,直线方程为x- ...
- java 球面距离_[置顶] C语言实验题:已知地球上两点的经度和纬度求其球面距离...
要求:地球的平均半径为6371千米,已知地球上两个城市A.B的经度和纬度,编程序求出这两个城市之间的地面距离. 首先,固定两点,a(x1,y1,z1),b(x2,y2,z2). 由空间解析几何及向量知 ...
- 已知圆上一点P1,求转动一定角度后P2的坐标
如图,半径为r, 以正北为0度角.设P1为已知点,与正北的夹角为α, P1转动β角度后到P2,求P2. 设P2与0度角的夹角为Ψ,则Ψ=α+β. 由图知 P1(x)=r*sin(α) P1(y)=r* ...
- 已知曲线上三点,如何求中间一点的法向量。
如下图,已知 A.B.C 三个点,求 B 点的 法向量,即(fCosSita, fSinSita),Sita 为 法线按逆时针方向和水平方向的夹角. 先计算线段AB的单位垂线段2,再计算线段BC 的单 ...
- 已知圆上任意两点求圆心和半径_已知圆上三点坐标求圆心和半径
R半径 PCenter圆点坐标 public void GetCircular(PointF P1,PointF P2,PointF P3,ref float R,ref PointF PCenter ...
- 已知圆上三点坐标求圆心和半径
R半径 PCenter圆点坐标 public void GetCircular(PointF P1,PointF P2,PointF P3,ref float R,ref PointF PCenter ...
- 已知圆外一点坐标,以及圆心坐标、半径,求圆的切线方程
圆心在坐标原点 圆心不在坐标原点
最新文章
- 【转】Linux 前后台作业切换及脱机管理
- watir添加新标签
- MHA环境搭建【4】manager相关依赖的解决
- OpenGL:读取图片显示
- python数组扩充_【Python】Numpy扩充数组函数之repeat和tile用法,
- 新基建新动力已来,RPA 成为数字化转型新利器!
- ASP.NET vNext 概述
- Spring 下 MyBatis 的基本使用
- nc 模拟服务器_Linux网络利器netcat/nc
- css3仿手机版淘宝商品并列显示
- Bad Rabbit
- VRRP配置与维护手册-1
- jike review
- java创建临时文件
- [渝粤教育] 无锡商业职业技术学院 团队管理 参考 资料
- html 银联图标,银联标志logo图片 云闪付app扫银联标识领获红包
- 惠普喷墨打印机Smart Tank 519打印错误的解决
- Mac 安装 mkdocs 的环境搭建
- 分类及回归问题——继续人脸颜值评分
- 电影TS、TC、SCR、R5、BD、HD等版本是什么意思