Я не эксперт, но один (глупый?) Подход - написать функцию, которая находит «среднюю точку» двух координат ((x1 + x2) / 2, (y1 + y2) / 2, (z1 + z2) / 2), затем округлите их, чтобы получить действительную координату.Теперь вы можете найти всю «линию», просто рекурсивно применив функцию ко всем ногам, пока не появится новая средняя точка.
func findMiddlePoint(a, b)
return new Point(
((a.x + b.x).abs / 2).round,
((a.y + b.y).abs / 2).round,
((a.z + b.z).abs / 2).round)
func findLine(points, a, b)
if a == b # no new points
return
middle = findMiddlePoint(a, b)
points.add(middle)
findLine(points, a, middle)
findLine(points, middle, b)
func findFullLine(a, b)
points = []
points.add(a)
findLine(points, a, b)
opints.add(b)
return points