c++ 什么是使一串直线看起来像一条直线的技巧?

r1zk6ea1  于 2023-07-01  发布在  其他
关注(0)|答案(1)|浏览(123)

在2D图形中,可以绘制4条直线;水平、垂直、向右倾斜和向左倾斜。

红色和蓝色的线分别由y = xy = -x表示。尝试绘制与y = 2x不同的图形需要绘制多条直线:

尽管看起来像一条直线是由多条垂直直线组成的;为了揭示这个视觉技巧,我们所要做的就是放大图片:

我想用c++和winapi实现这个技术,但是这个技术是什么呢?

ryevplcw

ryevplcw1#

通常,有两种类型的线,您使用的方法在它们之间有所不同:

    • 细线 *,直接在像素级绘制
    • 粗线 *,通过组合三角形等图元绘制,使用光栅化渲染

细线

  • 两条光栅化线。彩色像素被示出为圆圈。上图:单色加网;下面:Gupta-Sproull抗锯齿-通过Phrood~commonswiki*

使用专门的算法绘制细线。通常,目标是绘制一条只有一个像素宽的线。算法取决于您的目标:

粗线

同时渲染这些对象更容易,也更困难。如果您不必担心行的结尾和角,您只需在行周围创建一个四元文字,并像其他任何东西一样使用光栅化来渲染它。
然而,渲染角和结束通常需要使用多个基元:

  • 由四边形、三角形和圆形组成的圆角粗线-@japreiss*

您共享的红线看起来像一条粗线,因为它有多个像素厚。

相关问题