Вы можете использовать алгоритмы растеризации круга Брезенхэма (а также другие, такие как алгоритм средней точки).
Ключевой момент - симметрия.Пусть стадион (также имеет название «капсула») центрируется в начале координат и имеет параметры: радиус R
и расстояние между полукругами D
Начало от правой точки дуги Брезенхэма (в координатах (R, 0)
)).Сгенерируйте точки (x,y)
, чтобы сформировать четверть круга, и сделайте отраженные и смещенные точки для создания горизонтальных линий развертки
(x + D/2 , y) connect to (-x - D/2, y)
(x + D/2, -y) connect to (-x - D/2, -y)
Для произвольной ориентации стоит отсортировать точки соединения по Y и составить до 5 областей - линий сканированиядуги-дуги, дуги-линии, линии-линии, линии-дуги, дуги-дуги.Затем вычислите координаты X-конца для каждой координаты Y