2010-10-14 3 views
-3

Я ищу один для создания MS-paint-приложения.Реализация алгоритма рисования эллипса Bresenham в OpenGL

+0

- это домашнее задание? в каком учреждении вы читаете? – Donotalo

+0

Это домашнее задание. Я отметил его как таковую. Мне разрешено использовать реализации, написанные мной сейчас, пока я подтверждаю источник, программа не является ящиком эллипса, это полный подрыв для ms-paint в opengl. – andandandand

ответ

1

OpenGL предназначен для создания 3D-приложений. Использование его для элементов на основе пикселов, таких как программа рисования, будет очень тяжело.

Самое близкое, что я могу себе представить, это нарисовать пиксели для эллипса текстурной поверхности, а затем показать его как спрайт. Убедитесь, что у вас всегда установлен идентификатор, иначе результат может выглядеть размытым.

Хорошей альтернативой OpenGl в вашем случае будет SDL. Это проще и пиксельно.

+0

Я рассмотрю это из любопытства. Тем не менее, домашняя работа требует реализации opengl. – andandandand

+0

Возможно, вы могли бы рассмотреть возможность создания другого типа проекта, если требуется openGL. – codymanix

+0

Домашнее задание - это приложение, подобное MS-paint, в openGL. – andandandand

1

Алгоритм рисования Bresenham используется для сканирования конвертирования эллипса, то есть правильного рисования и заполнения его краев. OpenGL - это графическая библиотека на основе многоугольника, которая выполняет собственное преобразование сканирования, поэтому я бы сказал, что вы думаете сделать это неправильно.

Лично я бы вычислил несколько точек вокруг края многоугольника, например. регулярно отступая от 0 до 360 градусов, а затем нарисуйте GL_FAN с центром в качестве первой точки и вычисленными точками в качестве остальной части (и снова включите точку 0 градусов в конце).

Это не будет абсолютно точной, но хорошей и быстрой для большинства целей.

Вы можете быть более сложными и генерировать больше краевых точек, если эллипс больше, что повысит точность.

+0

Нет, меня попросили предоставить реализацию алгоритма средней точки Брешенема в opengl для эллипса явно. – andandandand