Не используйте текстуру для подобных вещей (особенно для вещей одного цвета!) - также не пытайтесь делать это попиксельно. У вас есть 3D ускорение по причине.
Просто нарисуйте круг, похожий на пирог, используя веер треугольника. Вам понадобятся следующие вершины.
- Центр круга
- х точек на границе круга.
Первые две точки будут определять линию между центром круга и его границей. Третья вершина будет определять первый многоугольник. Вершины 1, 3 и 4 будут определять второй многоугольник и т. Д.
Чтобы получить точки на границе круга, используйте формулы из вашего примера. Первый угол будет 0 °, следующие кратны (360 ° / точек на окружности ). Чтобы получить полный круг, вам понадобится еще одна точка, соответствующая второй точке (первой точке на границе).
В зависимости от количества вершин на окружности вы получите разные n-угольники. Чем больше вершин вы используете, тем больше будет выглядеть форма (при некоторой производительности):
- (Менее 2 вершин невозможно, поскольку для многоугольника необходимо нарисовать как минимум 3 вершины.)
- Всего 4 очка (3 очка по кругу) приведут к треугольнику.
- Всего 5 очков (4 очка на окружности) приведут к квадрату.
- Всего 6 очков (5 очков по кругу) приведет к пятиугольнику
- ...
На самом деле пример XNA для рисования примитивов показывает, как нарисовать круг (или n-гон), используя веер треугольника.