渲染二维元素的参考(圆形,圆角矩形,模糊〜)

Nik*_*s R 2 c++ python user-interface rendering 2d

我正在编写一个Python模块,它应该为低级GUI平台提供简单的OOP接口.为此,需要创建一个由模块中的类使用的包装类.

这是基本实现的(尚)类图.

类图

这个问题实际上并不是关于包的设计,但如果你对它有疑问或者想知道什么可能更好,我不会介意任何评论/评论.

所述DrawArea类是低级别的平台,并在包中的类之间的粘合剂.事件通常从这里开始,因为包装器应该识别鼠标/键盘事件并通知它的孩子.

现在,正如您所看到的,DrawArea类需要实现一些函数来将基本元素呈现到GUI上.现在,我想了解渲染圆,圆角矩形,线条(厚度)和抗锯齿背后的魔力.其中一个原因是我只是对这个主题感兴趣,另一个原因是我想用这个包提供一个实现.(将用C/C++编写,我很确定Python对于这样的渲染操作会很慢,不是吗?)

现在我的问题:

  1. 对于如何渲染圆形,椭圆形,圆角矩形或线条(有一个厚度,单像素线很容易......),有什么好的参考吗?
  2. 对于如何实现抗锯齿有什么好的参考吗?
    • 例如,渲染元素时是否进行了抗锯齿处理,或者在完成所有渲染操作后应用了抗锯齿?
  3. 使用像Path渲染类这样的东西会更好吗?即应该呈现的表单的矢量化表示.这将有利于呈现任何类型的二维形式,但我不知道如何实现它.渲染矢量图形有很好的参考吗?

Grz*_*cki 5

抗粒度几何 - 高保真2D图形 - 用于C++的高质量渲染引擎是一个编程库,这是我最喜欢的渲染矢量图形的选择.

您可能想要制作它的包装(看一下文档),查看来源或...

跳转到研究部分,您可以在其中找到大量有关如何操作的信息:"高保真2D图形 - 高质量渲染".那里提到了火盆线和其他主题.我最喜欢的部分是关于子像素渲染的"文本光栅化曝光".

如果您有兴趣如何优化绘图线,多边形等,即使在C +汇编级别,

这里以许多2D计算机图形算法之一为例: