0
我想確定兩個端點start = (x, y, z, ...), end = (x, y, z, ...)
給出的線是否與n維立方體或矩形相交,我將其存儲爲相反端點bottom_most = (x, y, z, ...), top_most= (x, y, z, ...)
。檢查線互相關n維立方體
我發現solutions in 3D,但不是一個一般化的n維。
我目前的解決辦法是:
dimensions = 3
def check_intersects(start, end, cube):
num_intersections = 0
for dim in range(dimensions):
if cube[dim] <= start[dim] <= cube[self.dimensions + dim] or start[dim] <= cube[dim] <= end[dim]:
num_intersections += 1
if num_intersections >= dimensions:
return True
return False
start, end = (0, 0, 0), (30, 30, 30)
cube = (10, 10, 10, 20, 20, 20)
print(check_intersects(start, end, cube))
start, end = (0, 0, 0), (0, 10, 20)
print(check_intersects(start, end, cube))
,但是這似乎打破在某些情況下,該行從某些角度進去。
是否有更好的解決方案,或能爲我做這個圖書館?
它看起來像我的問題源於行的方向。某些行可能會「向後」,從右到左或從上到下,因此某些軸比較不起作用。 – Teknophilia
通過使用開始和結束的相應最小/最大值來解決此問題。 – Teknophilia