这里边比较关键的就是对斜率和角度的处理
具体怎么使用查看下面这条链接
cos()_C语言cos()详解:余弦函数,求某个角的余弦值 (biancheng.net)
#include<bits/stdc++.h>
using namespace std;
#define PI 3.14159265
int main( )
{
double x,y,r,xt,yt;
double k;
cin >> x >> y >> r >> k >> xt >> yt;
double y1,x1, y2, x2;
double a;
a = atan(k)*180/PI;
a = 90.0-a;
if(k>0){
x1 = x+r*cos(a*PI/180);
y1 = y-r*sin(a*PI/180);
x2 = x-r*cos(a*PI/180);
y1 = y+r*sin(a*PI/180);
y1 = k*(xt-x1)+y1;
y2 = k*(xt-x2)+y2;
if((y1<=yt and y2>=yt) or(y1>=yt and y2<=yt)){
cout << 1;
}
else{
cout << 0;
}
}
if(k<0){
x1 = x-r*cos(a*PI/180);
y1 = y-r*sin(a*PI/180);
x2 = x+r*cos(a*PI/180);
y2 = y+r*sin(a*PI/180);
y1 = k*(xt-x1)+y1;
y2 = k*(xt-x2)+y2;
if((y1<=yt and y2>=yt) or (y1>=yt and y2<=yt)){
cout << 1;
}
else{
cout << 0;
}
}
if(k==0) {
if(yt>=y-r and yt <=y+r){
cout << 1;
}
else{
cout << 0;
}
}
return 0;
}