一般方法编程求直线与圆交点
用直线方程与圆方程联立求方程组解即可,使用时直接套用下面函数中公式即可,(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;
}
一般方法编程求直线与圆交点相关推荐
- C++求解圆心、半径、直线与圆交点
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 C++求解圆心.半径.直线与圆交点 前言 一.检测对象 二.检测方法 1.检测圆心和半径 2.求解直线与圆的交点 3.计算圆环残缺比例 ...
- 直线和圆交点 halcon_初中数学三角形、四边形、圆辅助线的添加方法
今天,小编为大家整理了初中数学三角形.四边形.圆的辅助线添加方法,速来看!! 1三角形中常见辅助线的添加 与角平分线有关的 (1)可向两边作垂线: (2)可作平行线,构造等腰三角形: (3)在角的两边 ...
- JAVA程序设计:求直线与圆的交点坐标
其实圆与直线的交点方程并不难解,难得是算法实现,废话不多说,直接上代码: 核心类 /*** @Author: Zhangwenshun* @Description:* @Date: Created i ...
- Visual C++ MFC编程 绘制直线、圆、自行车
1.建立工程 右方空白处输入工程名称,然后点击确定 选中基本对话框,点击完成 将右边控件中的图像控件拖到这上面去,然后点击右键,改成位图类型 2.界面设计 布局各自随意,这里用到了静态文本,编辑框,组 ...
- 求两个圆交点的算法和圆与直线交点算法
算法代码参考如下: using System; using UnityEngine;[Serializable] public struct Circle {public Vector2 center ...
- 直线和圆交点 halcon_人教版六年级上册数学第五单元《圆》5.1 圆的认识
知识点 2 一.圆的认识 1.日常生活中的圆 2.画图.感知圆的基本特征 (1)实物画图 (2)系绳画图 3.对比,感知圆的特征:我们以前学过的长方形.正方形.平行四边形.梯形.三角形等,都是曲线段围 ...
- 直线与直线、直线与圆、直线与矩形的交点
求直线与直线.直线与圆.直线与矩形的交点 直线与直线的交点:a1x + b1x + c1x = 0 与 a2x + b2x + c2x = 0的交点坐标可直接根据公式x = (b1c2 - b2c1) ...
- 机器人技术第三次作业:用面向对象的思维设计相关类,从而实现直线与直线、直线与圆、直线与矩形的交点。
用面向对象的思维设计相关类,从而实现直线与直线.直线与圆.直线与矩形的交点. 基本思想: 直线与直线,直线与圆:利用公式直接求解 直线与矩形:分解成直线与直线的交点: #include <ios ...
- c语言直线和圆的方程结论,直线和圆的方程知识点总结
<直线和圆的方程知识点总结>由会员分享,可在线阅读,更多相关<直线和圆的方程知识点总结(6页珍藏版)>请在人人文库网上搜索. 1.直线与圆的直线方程一.直线方程.1. 直线的倾 ...
最新文章
- UVALive2678:Subsequence
- Linux文本模式中文乱码
- MS讲座:可视化的软件架构设计和Portal Starter Kit挖宝记
- P2764 最小路径覆盖问题(网络流)
- spring 异常捕获异常_跟踪异常–第5部分–使用Spring进行计划
- python里常用的正则表达式
- c语言定义星期一到日,C语言万年历程序设计
- 比尔沃服务器位置,防辐射植物哪个更好?
- 报错:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.
- 写贺卡给毕业师姐怎么写计算机系的,写给师姐的毕业祝福语赠言 送给师姐的毕业祝福语大全...
- 编写一个c语言 输入abc 输出最大数,C语言 输入abc,求最大数
- 网红书店的“关门潮”与场景阅读的“科技浪”
- js学习笔记----JavaScript中DOM扩展的那些事
- IP 地址冲突检测程序源码(解决某种情况下检测无效的问题)
- ResNet、ResNeXt详解以及代码实现
- Ethernet协议
- Java代码混淆工具-ProGuard
- 区块链熊市交易量不减,市场为何需要OKEx合约交易?
- python编码大全_Python3中的编码转换大全(不定期更新)
- 量子化学计算(Gausssian)图形工作站硬件方案