当前位置:  开发笔记 > 编程语言 > 正文

在最接近给定点的圆上找到点的最佳方法

如何解决《在最接近给定点的圆上找到点的最佳方法》经验,为你挑选了2个好方法。

给定一个点(pX,pY)和一个具有已知中心(cX,cY)和半径(r)的圆,你可以找到最短的代码量来找到最接近(pX的圆上的点) pY)?

我有一些代码工作,但它涉及将圆转换为形式的方程(x - cX)^ 2 +(y - cY)^ 2 = r ^ 2(其中r是半径)并使用方程从点(pX,pY)到(cX,cY)的线,以创建要求解的二次方程.

一旦我解决了它会做的错误,但它似乎是一个不优雅的解决方案.



1> Mike Dunlave..:

其中P是点,C是中心,R是半径,用合适的"mathy"语言:

V = (P - C); Answer = C + V / |V| * R;

其中| V | 是长度V.

好的好的

double vX = pX - cX;
double vY = pY - cY;
double magV = sqrt(vX*vX + vY*vY);
double aX = cX + vX / magV * R;
double aY = cY + vY / magV * R;

易于扩展到> 2维.



2> Johannes Sch..:

我会从中心到点做一条线,并且在那个图形穿过圆圈的地方进行计算oO我觉得不那么困难

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有