求圆外一点做圆切线的切点坐标(算法) 您所在的位置:网站首页 文件夹显示在桌面却找不到图标 求圆外一点做圆切线的切点坐标(算法)

求圆外一点做圆切线的切点坐标(算法)

2024-03-08 09:46| 来源: 网络整理| 查看: 265

求圆外一点做圆切线的切点坐标(算法)

求圆外一点做圆切线的切点坐标(算法) tim题目要求

解此题的常规方法是圆的方程和切线方程联立解的两个点的坐标,这种方法过于繁琐,而且在代码中不易实现。由此想到用向量旋转来解此题,解法如下。

知识点提要

二维坐标下向量旋转后的向量坐标公式。如下图: 在这里插入图片描述

解题思路

解题思路就是通过以点到圆心的向量旋转得到新的点到圆心的向量,然后乘以模长得到坐标。 在这里插入图片描述

C程序代码 #include #include struct Point { // 声明结构体类型 double x; // 该点的x坐标 double y; // 该点的y坐标 }C,P,Q1,Q2,U; // C是圆心的坐标 P是点的坐标 Q1,Q2是切点坐标 U是点到圆心的单位向量坐标 int main() { double r =0; // 圆的半径 double distance=0; // 圆心r 到p 点的距离 double length=0; // 点p 到切点的距离 double angle =0; // 切线与点心连线的夹角 printf("请输入C点坐标:\n"); scanf("%lf %lf",&C.x,&C.y); printf("请输入P点坐标:\n"); scanf("%lf %lf",&P.x,&P.y); printf("请输入圆的半径:\n"); scanf("%lf",&r); // 求出点到圆心的距离 distance =sqrt((P.x-C.x)*(P.x-C.x)+ (P.y-C.y)*(P.y-C.y)); // 判断是否符合要求 distance


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有