用直线方程与圆方程联立求方程组解即可,使用时直接套用下面函数中公式即可,(x1,y1)(x2,y2)即为所求!

//下面这个函数得到交点,如果有2个就返回第一个求出的。

CPoint GetPoint(int cx,int cy,int r,int stx,int sty,int edx,int edy )
{
    //(x - cx )^2 + (y - cy)^2 = r^2
    //y = kx +b

// 求得直线方程
    double k = ((double)(edy - sty) ) / (edx - stx);
    double b = edy - k*edx;
  
  // 列方程
  /*
    (1 + k^2)*x^2 - x*(2*cx -2*k*(b -cy) ) + cx*cx + ( b - cy)*(b - cy) - r*r = 0
  */
  double x1,y1,x2,y2;
  double c = cx*cx + (b - cy)*(b- cy) -r*r;
  double a = (1 + k*k);
  double b1 = (2*cx - 2*k*(b - cy));
  // 得到下面的简化方程
  // a*x^2 - b1*x + c = 0;
  
  double tmp = sqrt(b1*b1 - 4*a*c);
  x1 = ( b1 + tmp )/(2*a);
  y1 = k*x1 + b;
  x2 = ( b2 - tmp)/(2*a);
  y2 = k*x2 + b;

// 判断求出的点是否在圆上

double res = (x1 -cx)*(x1 -cx) + (y1 - cy)*(y1 -cy);
 CPoint p; 
 if( (int)res == r*r)  // 我这里  r = 50,res = 2500.632, 还是比较准确的
  {
    MessageBox("get it");
    p.x = x1;
    p.y = y1;  
 }
 else
   {
    p.x = x2;
    p.y = y2;
   }
return p;
}

一般方法编程求直线与圆交点相关推荐

  1. C++求解圆心、半径、直线与圆交点

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 C++求解圆心.半径.直线与圆交点 前言 一.检测对象 二.检测方法 1.检测圆心和半径 2.求解直线与圆的交点 3.计算圆环残缺比例 ...

  2. 直线和圆交点 halcon_初中数学三角形、四边形、圆辅助线的添加方法

    今天,小编为大家整理了初中数学三角形.四边形.圆的辅助线添加方法,速来看!! 1三角形中常见辅助线的添加 与角平分线有关的 (1)可向两边作垂线: (2)可作平行线,构造等腰三角形: (3)在角的两边 ...

  3. JAVA程序设计:求直线与圆的交点坐标

    其实圆与直线的交点方程并不难解,难得是算法实现,废话不多说,直接上代码: 核心类 /*** @Author: Zhangwenshun* @Description:* @Date: Created i ...

  4. Visual C++ MFC编程 绘制直线、圆、自行车

    1.建立工程 右方空白处输入工程名称,然后点击确定 选中基本对话框,点击完成 将右边控件中的图像控件拖到这上面去,然后点击右键,改成位图类型 2.界面设计 布局各自随意,这里用到了静态文本,编辑框,组 ...

  5. 求两个圆交点的算法和圆与直线交点算法

    算法代码参考如下: using System; using UnityEngine;[Serializable] public struct Circle {public Vector2 center ...

  6. 直线和圆交点 halcon_人教版六年级上册数学第五单元《圆》5.1 圆的认识

    知识点 2 一.圆的认识 1.日常生活中的圆 2.画图.感知圆的基本特征 (1)实物画图 (2)系绳画图 3.对比,感知圆的特征:我们以前学过的长方形.正方形.平行四边形.梯形.三角形等,都是曲线段围 ...

  7. 直线与直线、直线与圆、直线与矩形的交点

    求直线与直线.直线与圆.直线与矩形的交点 直线与直线的交点:a1x + b1x + c1x = 0 与 a2x + b2x + c2x = 0的交点坐标可直接根据公式x = (b1c2 - b2c1) ...

  8. 机器人技术第三次作业:用面向对象的思维设计相关类,从而实现直线与直线、直线与圆、直线与矩形的交点。

    用面向对象的思维设计相关类,从而实现直线与直线.直线与圆.直线与矩形的交点. 基本思想: 直线与直线,直线与圆:利用公式直接求解 直线与矩形:分解成直线与直线的交点: #include <ios ...

  9. c语言直线和圆的方程结论,直线和圆的方程知识点总结

    <直线和圆的方程知识点总结>由会员分享,可在线阅读,更多相关<直线和圆的方程知识点总结(6页珍藏版)>请在人人文库网上搜索. 1.直线与圆的直线方程一.直线方程.1. 直线的倾 ...

最新文章

  1. UVALive2678:Subsequence
  2. Linux文本模式中文乱码
  3. MS讲座:可视化的软件架构设计和Portal Starter Kit挖宝记
  4. P2764 最小路径覆盖问题(网络流)
  5. spring 异常捕获异常_跟踪异常–第5部分–使用Spring进行计划
  6. python里常用的正则表达式
  7. c语言定义星期一到日,C语言万年历程序设计
  8. 比尔沃服务器位置,防辐射植物哪个更好?
  9. 报错:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.
  10. 写贺卡给毕业师姐怎么写计算机系的,写给师姐的毕业祝福语赠言 送给师姐的毕业祝福语大全...
  11. 编写一个c语言 输入abc 输出最大数,C语言 输入abc,求最大数
  12. 网红书店的“关门潮”与场景阅读的“科技浪”
  13. js学习笔记----JavaScript中DOM扩展的那些事
  14. IP 地址冲突检测程序源码(解决某种情况下检测无效的问题)
  15. ResNet、ResNeXt详解以及代码实现
  16. Ethernet协议
  17. Java代码混淆工具-ProGuard
  18. 区块链熊市交易量不减,市场为何需要OKEx合约交易?
  19. python编码大全_Python3中的编码转换大全(不定期更新)
  20. 量子化学计算(Gausssian)图形工作站硬件方案

热门文章

  1. 大数据与机器学习之间的关系
  2. vue组件通信案例练习(包含:父子组件通信及平行组件通信)
  3. C# 配置文件 AppSettings和ConnectionStrings的区别
  4. MTK8788 安卓手机主板 4G通讯模块应用
  5. java 圈复杂度_追求代码质量: 监视圈复杂度
  6. Vue通过微信定位+百度地图获取详细地理位置信息
  7. HBsae与时空索引技术杂谈
  8. 知识管理、文档管理两手抓,全靠它!
  9. 邮件白名单设置方法【51CTO帮助】
  10. LSTM模型预测时间序列性质的进件量---详细步骤以及例子