В моем проекте мне нужно реализовать растеризацию окружностей и эллипсов (в C ++ или в сборке + SIMD, если это возможно). Я знаю об алгоритме окружности средней точки и алгоритме окружности Брезенхэма. Но эти алгоритмы работают с целочисленными значениями (центр x, центр y и радиус). В моем случае радиус и центр должны быть выражены в формате с плавающей точкой (или, по крайней мере, с фиксированной точкой). А также радиус может быть менее 1px. Поэтому мне нужен алгоритм, который работает со значениями с плавающей запятой. Кто-нибудь может мне помочь?
По словам Википедии Алгоритм Брезенхэма, Предполагается нарисовать круг в пикселях экрана.
Вот почему вы можете основывать вычисления вашего круга на числах с плавающей запятой, помещая центр в любое нецелое место с любым нецелым радиусом, и ваш круг будет нарисован точно в целочисленных пиксельных местах.
Других решений пока нет …