Предполагая, что у меня есть открытый многоугольник, представленный списком 2D точек.Например, представление некоторого вида треугольника-многоугольника без основы было бы:
import numpy as np
polygon_arr = np.array([[0,0], [15,10], [2,4]])
Я ищу элегантный способ обогатить представление, то есть добавить точки к polygon_arr такой, что сам многоугольник не изменится, но для каждого значения y (в диапазоне многоугольника) в polygon_arr .
будет соответствующая точка. Пример:
simple_line_polygon = np.array([[0,0], [10,5]])
enriched_representation = foo(simple_line_polygon)
# foo() should return: np.array([[0,0], [2,1], [4,2], [6,3], [8,4], [10,5]])
Я думал о рассмотрении каждой из двух смежных точек в многоугольнике, построил линейное уравнение (y = mx + n) и отобрал его для каждого y в пределах диапазона;затем рассмотрим особые случаи, такие как две точки, расположенные вертикально (поэтому уравнение линии не определено), и случай, когда точки уже ближе друг к другу, чем изменение y на один пиксель в значении y.Тем не менее, это не так элегантно, и было бы полезно получить лучшие идеи.