zznuoj 1540 : 直线与圆
2024-09-21 02:22:12
题目描述
给出一个圆的圆心坐标与圆的半径,和一条直线上的两点坐标,求这条直线与圆有多少个交点。 输入
输入3个实数x,y,r值分别表示圆心坐标与圆的半径,输入4个实数x1,y1,x2,y2表示直线上的两点。多实例,输入到文件尾结束。 输出
输出直线与圆的交点个数。 样例输入
复制 样例输出
复制
代码:需要特殊考虑斜率不存在 的情况,其他情况一样,按照之前学的圆与直线的交点来写,与半径r比较的时候需要考虑精度。
#include<stdio.h>
#include<math.h>
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
double x,y,r,x1,y1,x2,y2;
double k,b,d;
while(scanf("%lf %lf %lf %lf %lf %lf %lf",&x,&y,&r,&x1,&y1,&x2,&y2)!=EOF)
{
if(fabs(x2-x1)<1e-)//斜率不存在
d=fabs(x-x1);
else
{
k=(y2-y1)/(x2-x1);
b=y1-k*x1;
d=fabs(k*x-y+b)/sqrt(k*k+);
}
if(fabs(d-r)<1e-)
printf("1\n");
else if(d<r)
printf("2\n");
else
printf("0\n");
}
return ;
}
最新文章
- native2ascii.exe 字符转码与反转码
- 温故而知新,jquery选择器$=
- disconnected no supported authentication methods available(server sent: publickey,keyboard interae)
- mongoose学习文档
- 使用 Express 和 waterline 创建简单 Restful API
- STM32外部中断.
- PHP开发调优clockwork工具
- jquery图片轮播-插件
- 获取Enum的扩张方法。
- 【Java每日一题】20170109
- 重拾Python(2):如何安装第三方库(Windows)
- (ospf、rip、isis、EIGRP)常见的动态路由协议简介
- Linux C启动时创建pid文件
- 【汇编语言】DOXBox 0.74 常用debug命令
- Gradle 打包上传至私有仓库配置
- 统计iis日志第一例的次数
- Linux vi 编辑器常见命令的使用
- 利用python抓取页面数据
- leetcode — anagrams
- Netty实战 - 1. 基本概念
热门文章
- Spring Boot 小技巧
- python 模块 不可不知的知识点
- Document.write和 InnerHTML
- HTML5-2
- crt证书iis 中引用 程序目录提示 System.UnauthorizedAccessException:拒绝访问
- Python内存释放
- Java Spring 在线程中或其他位置获取 ApplicationContext 或 ServiceBean
- ubuntu16.04 登陆不进桌面
- SQL-59 按照salary的累计和running_total,其中running_total为前两个员工的salary累计和,其他以此类推。
- CPU-bound(计算密集型) 和I/O bound(I/O密集型) 区别 与应用