Насколько я помню, обычное дело это заполнять, используя либо горизонтальные, либо вертикальные линии.
То есть для каждой итерации, которую вы строите от квадранта I до квадранта II и от квадранта III до квадранта IV (где я выбрал горизонтальные линии).Обратите внимание, что вы получаете в общей сложности четыре строки из каждой итерации.
( p.x+x, p.y+y ) to ( p.x-x, p.y+y )
( p.x+y, p.y+x ) to ( p.x-y, p.y+x )
( p.x+x, p.y-y ) to ( p.x-x, p.y-y )
( p.x+y, p.y-x ) to ( p.x-y, p.y-x )
Все эти линии горизонтальны, и начинаются и заканчиваются на всех восьми точках.Когда вы закончите, весь круг будет заполнен без ненужной перерисовки (за исключением, возможно, двойного рисования последних двух линий, когда).
Выбор горизонтальной или вертикальной может быть совершенно произвольным, но еслиБазовая графическая система рисует линии быстрее в одном направлении, чем в другом, это может иметь значение.