Пытаюсь нарисовать окружность, на примере круга. Для отрисовки использую следующую функцию
SDL_RenderDrawLinesF.
Код для рассчета точек:
void RenderContext::DrawEllipse(FPoint position, int width, int height, Color color)
{
auto points = std::array<FPoint, MaxPointsNumber + 1>();
auto radiusX = width / 2.0f;
auto radiusY = height / 2.0f;
auto center = FPoint(position.x + radiusX, position.y + radiusY);
for(size_t i = 0; i < points.size() - 1; i++)
{
points[i].x = center.x + radiusX * CosRange[i];
points[i].y = center.y + radiusY * SinRange[i];
}
points[MaxPointsNumber] = points[0];
DrawLines(points, color);
}
MaxPointsNumber = 180, увеличение не дает ничего.
CosRange/ SinRange - рассчитаные заранее значения для каждого градуса.
Сам результат: