示例#1
0
 def subdiv(s: Vec3, e: Vec3, s_param: float, e_param: float):
     m_param = (s_param + e_param) * 0.5
     m = vertex_(m_param)
     d = distance_point_line_3d(m, s, e)
     if d < distance:
         yield e
     else:
         yield from subdiv(s, m, s_param, m_param)
         yield from subdiv(m, e, m_param, e_param)
示例#2
0
def test_distance_point_line_3d(points, expected):
    p, a, b = Vec3.generate(points)
    assert distance_point_line_3d(p, a, b) == pytest.approx(expected)
def test_distance_point_line_3d_no_line(x):
    """Start point is equal or close to end point."""
    s = Vec3(1, 0, x)
    e = Vec3(1, 0, x)
    with pytest.raises(ZeroDivisionError):
        distance_point_line_3d(Vec3(1, 0, 0), s, e)