已知点a,点b确定一条直线L,
在L周围给定一个圆,
圆的圆心是点c,半径是r.如何求出圆和L相交的两个点的座标,如果是相切的话就是求切点了.运算速度越快越好.谢谢!!!
唉!数学都还给老师了!!!

解决方案 »

  1.   

    可以利用方程组来计算。
    已知两点a、b坐标,可以写出直线方程。
    圆已知半径和圆心,也可写出圆的方程。联立两个方程然后计算出结果,就是交点的坐标。
    在计算机实现中,可以先化简直线方程,然后代入到圆的方程中。然后利用数学函数计算结果。可能用到很多数学符号,所以
    #include "math.h"是必要的。
      

  2.   

    直线方程:y = (yb-ya)/(xb-xa)*(x - xa) + ya;
    判断点C到直线的距离与r比较,如果<=,则有交点,解方程组就可以了。
      

  3.   

    圆方程:(x-a)*(x-a)+(y-b)*(y-b) = d*d    其中(a,b)是圆心,d是半径
    直线方程:y=ax+b联立解二次方程,两个根是:(-B + sqrt(B*B-4AC)/2A,(-B - sqrt(B*B-4AC)/2A
      

  4.   

    N_G_U() 
    已经把方法写好了,不错。
    不过我觉得应该还有更好的方法。