我有一条从A到B的线和一条位于C的圆,半径为R.

用于检查线是否与圆相交的好算法是什么?它沿圆圈边缘的坐标发生了什么?
我正在寻找一个好的,发展良好的库,用于python中的几何操作和评估,例如:
我有一本关于所有这些操作的概要书,我可以实现它但不幸的是我没有时间,所以我会喜欢这样做的图书馆.大多数操作对于游戏目的都很有用,所以我确信其中一些功能可以在游戏库中找到,但我不希望包含我不需要的功能(例如图形).
有什么建议 ?谢谢
我有一个奇怪的问题,SymPy中的平面交叉点可以用简单的例子,但是对于坐标更复杂的一个,它会失败.我发布了一个有效的简单示例和失败的示例.正如Povray图像所示,我有三个平面穿过多面体的顶点并垂直于穿过相应顶点和中心的直线.我想计算这些平面相交的点,但是SymPy给出了平面对相交的线的错误结果.在图像中,正确的交叉点可以看作短线(用CSG交叉点创建).与它们平行的长线是由SymPy计算的线.
我做错了什么,或者这是SymPy中的错误?
更多图片在这里:http ://paste.watchduck.net/1712/sympy_planes/
有谁知道如何在页面上放置许多图像,而不是不发布问题?("您的帖子似乎包含未正确格式化为代码的代码.")
码:
from sympy import Point3D, Plane
pointR = Point3D(1/2, 0, 1/2)
pointG = Point3D(1, 0, 0)
planeR = Plane(pointR, pointR)
planeG = Plane(pointG, pointG)
print('\n######## Intersection of the planes:')
lineRG = planeR.intersection(planeG)[0] # yellow
print(lineRG)
print('\n######## Intersection of plane and contained line returns the line:')
lineRG_again = planeR.intersection(lineRG)[0]
print(lineRG_again.equals(lineRG))
Run Code Online (Sandbox Code Playgroud)
输出:
######## Intersection of the planes:
Line3D(Point3D(1, 0, 0), Point3D(1, 1/2, 0))
######## Intersection of plane and contained line …Run Code Online (Sandbox Code Playgroud)