正如标题中所写,我想在c ++和linux上下文(ubuntu)中绘制抗锯齿的圆角矩形。我已经尝试过SDL_gfx但是在圆形框形状上没有抗锯齿功能。我也读过SDL_Draw,但我认为它既没有提供抗锯齿功能。
这就是为什么我要问是否有人知道提供这种形状的框架,或者是否有人知道(光)抗锯齿算法(我需要这个用于实时视频处理)。
谢谢Vjo,但我真的不想在我的软件中使用openGL ...顺便说一下,我想我想出了另一种绘制抗锯齿圆角矩形的方法!
我在第一篇文章中没有解释的是我已经在我的程序中使用SDL和opencv。所以我有个主意:
你怎么看?我今晚会试试!
答案 0 :(得分:0)
需要抗锯齿的形状的唯一部分是角落。绘制四个抗锯齿四分之一圈,每个角落一个(小林武的圆圈算法是你最好的选择),并用简单的线条填补空白。如果形状不会旋转(也就是说,所有直线都是垂直或水平的,请使用Bresenham的非抗锯齿线算法,否则使用Wu的线算法.Wu的抗锯齿算法通常是最快的并且给出非常好的结果。
如果您真的想要优化结果并且熟悉x86汇编编程,我建议使用内联汇编语言编写绘图例程。经过适当调整,wu的线算法可以用少至15条指令编写,而他的圆形算法可以用40-50条指令编写。