求圆心到点的直线与圆的相交点

news2024/11/16 13:22:09

求圆心到点的直线与圆的相交点

 点B为圆上一动点,已知圆心O(x2,y2), 圆外点A(x1,y1),圆半径r值,求B(x,y)坐标。

由图可知,产生下面两个公式。

m/n = y1-y2/x1-x2

      m^2+n^2=r^2

由上面的公式可以得出

     n的长度计算公式为n^2= r^2 / [ (y1-y2 / x1-x2)^2 + 1]

 

 点B的坐标为(x2-n,  y2+m)

PolygonUtils.java代码如下:

public class PolygonUtils {

/**
   * 求交点坐标
   * @param p1 圆外任意一点坐标
   * @param o1 圆心坐标
   * @param radius 圆半径
   * @return
   */

    public PointDto getLine4CircularV1(PointDto p1, PointDto o1, double radius){
        //m,n分别为为交点跟圆心在y轴,和x轴的间距;
        double m=0,n=0;
        double y = p1.y-o1.y, x = p1.x-o1.x;
        //计算m和n
        //n^2= r^2 / [ (y1-y2 / x1-x2)^2 + 1]
        n = pow(radius, 2) / (pow(y / x, 2) + 1) ;
        //m^2 + n^2 = r^2
        m = sqrt( pow(radius, 2) - n);
        n = sqrt(n);
        PointDto dto = new PointDto();
        if(x > 0){
            if(y > 0){
               //在第四象限
            }else{
                //在第一象限
                m *= -1;
            }
        }else{
            n *= -1;
            if(y > 0){
                //在第三象限
            }else{
                //在第二象限
                m *=-1;
            }
        }
        dto.setY(o1.y+ m);
        dto.setX(o1.x+ n);
        return dto;
    }
}

PointDto.java

public class PointDto {
    public double x;
    public double y;

    public PointDto() {
        super();
    }
    public PointDto(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public double getX() {
        return x;
    }

    public void setX(double x) {
        this.x = x;
    }

    public double getY() {
        return y;
    }

    public void setY(double y) {
        this.y = y;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

昨日,一老师课前预测日本赢球,结果令人惊叹

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 世界杯是当前最为热门的一个体育赛事, 也是很多小伙伴最为喜欢的一个体育运动之一 而在昨日第四场:F组第一轮,比赛时间:2022年11月23日 21:00 德国VS日本 被一老师成功预测…

视频怎么加水印?这里有你想要的答案

现在不管是游戏解说,还是一些网课视频,亦或是视频博主制作的vlog,我们都能看到这些视频带上了水印,它不仅可以防止其他人随意盗用视频,还可以很好地为自己作宣传,吸引流量。不过还是有很多小伙伴没有著作权…

大部分PHP程序员,都搞不懂如何安全代码部署【二】(nginx篇)

在此之前发布了 代码安全部署的,里面写的nginx 配置安全写了一点点,今天具体补充一下nginx 的配置 nginx站点目录及文件URL访问控制 一、根据扩展名限制程序和文件访问 利用nginx配置禁止访问上传资源目录下的PHP、Shell、Perl、Python程序文件。配置…

基于图像识别的小车智能寻迹控制系统

目录 摘要…… I Abstract II 基于图像识别的智能寻迹控制系统设计 I Design of Intelligent tracking Control system based on Image recognition II 目录 III 第1章 绪论 1 1.1 课题背景 1 1.1 国内外文献综述 1 1.2 论文研究内容 2 第2章 基于图像识别的智能寻迹控制系统方…

代码随想录训练营第30天|LeetCode 332.重新安排行程、51. N皇后、 37. 解数独、回溯总结

参考 代码随想录 题目一:LeetCode 332.重新安排流程 这道题目有几个难点: 一个行程中,如果航班处理不好容易变成一个圈,成为死循环有多种解法,字母序靠前排在前面,让很多同学望而退步,如何该…

没有项目管理经验,可以参加PMP考试吗?

咱们先来了解一下PMP,PMP认证是一项针对项目管理的资格认证,属于管理学中的经济/项目管理,也是目前职业资格认证中含金量较高的,堪比MBA、MPA。 许多大型私企和外企在招聘项目管理者和项目组成员的时候都优先考虑持有PMP认证的人…

【问题】Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口

Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口 文章目录Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题**问题** &#x…

社区垃圾分类督导AI盒子应用的痛点难点分析

载止于2022年底,我司A社区垃圾分类督导AI视频分析盒子已经在华东(上海、杭州、无锡等地),华南地区(深圳等地)大量上线,本人负责垃圾分类算法AI盒子的开发历时5年之久,从多年试点到现在规模上线使…

react源码分析:组件的创建和更新

这一章节就来讲讲ReactDOM.render()方法的内部实现与流程吧。 因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了…

算法入门 | 二叉树的递归遍历、递归创建系列(递归)

目录 1. 二叉树的遍历规则 2. 二叉树的结构体设计 【leftchild data rightchild】 3. 二叉树的递归先序、中序、后序遍历 4. 利用已知字符串(二叉树的先序序列)递归创建一棵二叉树 (1)购买节点函数 (2&#xff…

【附源码】计算机毕业设计JAVA移动学习网站

【附源码】计算机毕业设计JAVA移动学习网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

阻止网络钓鱼诈骗的技巧

根据 Verizon 的2022 年数据泄露调查报告,25% 的数据泄露始终涉及网络钓鱼。 这是怎么发生的?参与网络钓鱼的欺诈者往往是一些掌握发文技巧的内容作者。他们知道如何创造一种紧迫感,让您点击通知并阅读消息。 很多用户落入了他们的陷阱&…

录屏软件哪个好?比较好用的录屏软件,这4款值得一试!

​现在很多人都会使用录屏软件,有些用来录制游戏里的精彩操作,有些用来录制线上的教学课程,有些用来录制在线视频会议。如今录屏软件种类繁多。选择一个好的录屏软件十分重要。录屏软件哪个好?比较好用的录屏软件有哪些&#xff1…

Zebec开启多链布局,流支付生态持续扩张

随着 Do Kwon 的Terra 以及 Sam Bankman-Fried 的 FTX,这两个加密行业的“庞大帝国”轰然倒塌后,Terra生态毁于一旦,而辉煌一时的Solana生态也失去了“靠山”,尤其是在Solana屡次宕机、在FTX危机时增发SOL代币后,进一步…

骨传导耳机会损伤大脑吗?一分钟详细了解骨传导耳机

骨传导耳机会损伤大脑吗?这个问题一直都有很多人在问,相对传统入耳式耳机来说,骨传导耳机更能保护我们的听力与大脑,骨传导耳机的工作原理跟传统耳机不一样,它不会损伤到大脑,下面我来跟大家说一下骨传导耳…

Python: 10大Web框架简介

文章目录简介一、Web 框架三大分类**1. 全栈框架****2.微框架****3.异步框架**二、Python Web 框架的优点三、十大 Python Web 开发框架1.Django2. Flask3.CherryPy4.Pyramid5. Grok6.Turbogears7.Zope38. Bottle9.Web2py10. Tornado小结简介 在这篇文章中了解一些可供您使用的…

dolphinscheduler-data-quality-3.1.0 部署

前提条件 dophinscheduler-3.1.0 安装 standalone-server 模式,参考 https://blog.csdn.net/windydreams/article/details/127678233 编译数据质量源码 为了保障后期正常运行,简化配置,可以进行以下配置 1)添加资源文件src/mai…

疫情之下,企业如何才能高效的进行异地协同办公?

随着经济社会的飞速发展再加上现在疫情反反复复的出现,很多公司的业务不再受地域的限制,所以出差就成了很多职场人士的家常便饭,而这一现象也加剧了异地办公模式的兴起,因为即便身处异地,也需要及时向领导汇报工作进度…

防爆定位信标与防爆定位基站有什么区别?

防爆定位信标与防爆定位基站都是组成人员定位系统的硬件设备。一套完整的人员定位系统由硬件设施和软件系统组成,其中硬件设施包括人员定位卡、防爆定位信标和防爆定位基站。 在大数据、信息化时代,基于蓝牙LoRa定位技术的融合定位系统,让我们…

2008-2020年全国各省劳动生产率

2008-2020年全国各省劳动生产率 1、包括:全国31省 2、来源:国J统计局 3、指标包括: 人均受教育年限、劳动生产率、6岁及6岁以上人口数(人口抽样调查)(人)、6岁及6岁以上初中人口数(人口抽样调查)(人)、 6岁及6岁以上大专及以上人口数(人…