Advertisement

[计算几何] (二维)圆与直线相交的问题

阅读量:

已知圆心O的坐标及圆的半径r,同时给出点A和点B的坐标,从而确定直线AB,求解该圆与直线AB的交点坐标。

如下图所示

Step1: 首先需确定圆心c在直线l上的投影点pr的坐标信息。该坐标可通过计算向量p1pr,其长度乘以向量p1p2的单位向量来获得。

Step2: 接下来应求出向量p1p2对应的单位向量e,随后利用勾股定理计算base的长度,从而得到向量base的具体表达。

Step3: 最终,以投影点pr为起始位置,沿正方向或负方向叠加该向量,即可确定圆与直线之间的两个交点坐标。

程序代码参考

复制代码
 #include<iostream>

    
 #include<cmath>
    
 #include<cstdio>
    
 using namespace std;
    
 typedef struct node
    
 {
    
 	double x, y;
    
 }NODE;
    
 inline NODE Vector(NODE A, NODE B);  //向量AB
    
 double cross(NODE A, 

全部评论 (0)

还没有任何评论哟~