相关疑难解决方法(0)

圆线段碰撞检测算法?

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

图片

用于检查线是否与圆相交的好算法是什么?它沿圆圈边缘的坐标发生了什么?

algorithm math geometry collision-detection line

191
推荐指数
8
解决办法
14万
查看次数

python中的好几何库?

我正在寻找一个好的,发展良好的库,用于python中的几何操作和评估,例如:

  • 评估2D和3D中两条线之间的交集(如果存在)
  • 评估平面和直线之间的交点,或两个平面之间的交线
  • 评估线和点之间的最小距离
  • 找到通过一个点的平面的正交
  • 旋转,平移,镜像一组点
  • 找到由四个点定义的二面角

我有一本关于所有这些操作的概要书,我可以实现它但不幸的是我没有时间,所以我会喜欢这样做的图书馆.大多数操作对于游戏目的都很有用,所以我确信其中一些功能可以在游戏库中找到,但我不希望包含我不需要的功能(例如图形).

有什么建议 ?谢谢

python geometry

92
推荐指数
6
解决办法
6万
查看次数

为什么SymPy计算错误的飞机交叉点?

我有一个奇怪的问题,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)

python symbolic-math sympy

11
推荐指数
1
解决办法
430
查看次数