【问题标题】:Line passing through a box (Python)穿过盒子的线(Python)
【发布时间】:2016-12-10 03:06:07
【问题描述】:

使用 Python (2.7),我如何判断一条线何时穿过一个由 4 个点组成的框?

例如,假设我已经构建了一个点的立方体:

from matplotlib import pyplot
import pylab
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

fig = pylab.figure()
ax = Axes3D(fig)

sequence_containing_x_vals = np.array([0,0,0,0,1,1,1,1])
sequence_containing_y_vals = np.array([0,0,1,1,0,0,1,1])
sequence_containing_z_vals = np.array([0,1,0,1,0,1,0,1])

ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals)
pyplot.show()

现在,假设我有一条从 (0.5,0.5,-3) 到 (0.5,0.5,3) 的垂直线。如何判断那条线是否穿过我的立方体?

【问题讨论】:

标签: python-2.7 numpy multidimensional-array intersection voxel


【解决方案1】:

这可能是您正在寻找的算法。

首先计算代表立方体面是子集的平面的方程,以及代表直线的方程对。

现在通过形成由线的方程组加上给定平面的方程组成的三元组来计算线与每个平面的交点,然后求解这个系统。

测试任何解决方案是否在给定的线段内和立方体的边缘内。

对于定义给定两点的线的两个方程,我还没有找到一个方便的解决方案。但是,以下 URL 提供了在给定三个点的情况下获取平面方程的方法:https://math.stackexchange.com/questions/1156983/find-the-equation-of-the-plane-knowing-that-it-passes-through-3-points

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    相关资源
    最近更新 更多