3d - Python: 怎么求直线上一个点?
PHP中文网
PHP中文网 2017-04-17 14:39:26
0
2
533

在一个3D空间,已知两个点的坐标(x1,y1,z1)和(x2,y2,z2)。那么这两点确定一条直线
那么,怎么求这直线上一个点呢?比如z=c的这个点

具体空间几何的解决其实会,主要是想看看
1. Python可以怎么优雅的解决这个问题?
2. 有没有相关的立体几何建模、计算的包(lib)?因为还有相关的一些问题想要解决。这个算是抛砖引玉了
3. 如果Python不是很适合解决这类问题,那什么语言更为何时?

像http://stackoverflow.com/questions/1076778/good-geometry-library-in-py...
提到的,都是2D的包,没法派上用场

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(2)
伊谢尔伦

我觉得如果你把问题转化为向量更好解决
如果你得到向量(x2-x1, y2-y1, z2-z1), 其中 a=x2-x1; b=y2-y1; c=z2-z1。
那你可以得到方程:
x = x1 + at
y = y1 + bt
z = z1 + ct
这样的话,你可以用python写出一个很简单的method: getPoint(t)。
对于任意的t都能得到该线上对应的点。

迷茫

如果你说的空间几何指的是解析式x+y+z=0的话,那么其实有个更优雅的解决的工具叫做向量。。和空间几何一样应该也属于高中的范畴,而且和简单的解析式相比,向量加上点这种表达方式有种说不出的优雅。。

有个科学库叫numpy,衍生版叫scipy。。
http://www.numpy.org

勾起了高中的知识,
我木有写过,就在这里抛砖引玉了。。

其实向量这种东西自己写判断也不难。。

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿