math - 找到圆上的切点?

标签 math geometry line

给定一条线,其第一个端点 P(x1,y1) 另一个端点未知,与位于原点、半径为 R 的圆仅在一个点(切线)T(x2,y2) 处相交。有谁知道如何获得T点吗?提前致谢!

最佳答案

Given a line with first end point P(x1,y1) another end point is unknown, intersect with a circle that located at origin with radius R at only one point(tangent) T(x2,y2). Anyone know how to get the point T?

其他一些解决方案似乎有点矫枉过正。我认为最简单的方法就是注意这是一个直角三角形,有顶点 P、T 和 O(原点)。角度 PTO 是直角,因为切线始终与半径成直角。

你知道TO的长度,因为它的长度为r并且在原点有一个顶点;您知道OP,因为您知道OP 在哪里。给定直角三角形的两条边,很容易找到第三条边的长度和方向。这是家庭作业,所以我将剩下的作为练习留给读者。

                    __...------__    T(x2, y2)                      
               _.-''             -(+)
            ,-'                   |----             
          ,'                     |     ----
        ,'                      |       '  ----
       /                       |         `     ----       
      /                       |           `.       ----   
     /                       |             \           ----
    |                       |               |              ----
    |                      |                 |                  ----
    |                     |                  |                      ----
    |                   (+)---------------------------------------------(+) P (x1,y1)
    |                                        .'        
    |                    O                   |         
     |                                      .'         
      \                                     /          
       \                                  ,'           
        `                                /             
         '.                            ,'              
           '-.                      _,'             
              '-._              _,(+)  T'(x3, y3)                   
                  '`--......---'                       

TO 有两个可能的方向,因为点 T' 也是有效的切点,因此您将得到两个全等三角形。

关于math - 找到圆上的切点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351746/

相关文章:

math - float 学坏了吗?

algorithm - 简单的3d空间碰撞检查算法

math - 实现脊检测

c# - WPF 绘图上下文 : How to keep existing content when draw new content?

rotation - 将旋转分解为围绕任意正交轴的旋转的更快方法

c++ - QCharts - 在 QLineSeries 中创建一个中断(空值)

python - 线(旅行路径)聚类机器学习算法

batch-file - 从文本文件中读取行并使用它们重命名文件

algorithm - 字谜索引计算

algorithm - 计算数字集的均匀性或差异性的快速方法