zoukankan      html  css  js  c++  java
  • zzulioj--1600--直线与圆(简单数学几何)

    

    1600: 直线与圆

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 360  Solved: 73

    SubmitStatusWeb Board

    Description


    给出一个圆的圆心坐标与圆的半径,和一条直线上的两点坐标,求这条直线与圆有多少个交点。

    Input

    输入3个实数x,y,r值分别表示圆心坐标与圆的半径,输入4个实数x1,y1,x2,y2表示直线上的两点。多实例,输入到文件尾结束。

    Output

    输出直线与圆的交点个数。

    Sample Input

    1 1 1 0 0 1 1

    Sample Output

    2
    现根据叉积求三角形面积,然后根据面积和底算出高

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    int main()
    {
    	double x1,x2,y1,y2,x,y,r,dis;
    	while(scanf("%lf%lf%lf%lf%lf%lf%lf",&x,&y,&r,&x1,&y1,&x2,&y2)!=EOF)
    	{
    		double s=fabs((x2-x)*(y1-y)-(x1-x)*(y2-y))/2;
    		dis=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    		double D=s*2/dis;
    		if(D==r)
    		printf("1
    ");
    		else if(D>r)
    		printf("0
    ");
    		else
    		printf("2
    ");
    	}
    	return 0;
    } 


  • 相关阅读:
    trie树
    基数排序
    CF724E Goods transportation 最小割 DP
    [CQOI2009]跳舞 网络流
    NOIP2018爆零记
    斜率优化
    CF311B Cats Transport 斜率优化DP
    逆元
    卡特兰数
    【BZOJ】【1565】【NOI2009】PVZ 植物大战僵尸
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273558.html
Copyright © 2011-2022 走看看