-3

我正在寻找一个可以构建类似 MS-paint 的应用程序。

4

3 回答 3

1

OpenGL 用于制作 3D 应用程序。将它用于像绘画程序这样的基于像素的东西会让事情变得非常困难。

我能想象的最接近的事情是将椭圆的像素绘制到纹理表面,然后将其显示为精灵。确保您始终设置身份转换集,否则结果可能看起来很模糊。

在您的情况下,OpenGl 的一个很好的替代方案是 SDL。它更简单且基于像素。

于 2010-10-14T16:29:51.660 回答
1

Bresenham 的绘制算法用于扫描转换椭圆,即正确绘制并填充它的边缘。OpenGL 是一个基于多边形的图形库,它自己进行扫描转换,所以我想说您正在考虑以错误的方式进行操作。

就我个人而言,我会计算多边形边缘周围的一些点,例如定期从 0 度到 360 度,然后绘制一个 GL_FAN,中心为第一个点,计算点为其余点(并再次包括 0 度点在末尾)。

这不会是完全准确的,但对于大多数目的来说是好的和快速的。

如果椭圆更大,您可以更复杂并生成更多边缘点,这将提高准确性。

于 2010-10-14T16:32:53.187 回答
0

我最终在这里实现了伪代码。工作得很好。

于 2010-10-16T19:28:26.740 回答