相关疑难解决方法(0)

我需要一个像素完美的三角形填充算法来避免混叠伪像

我正在协助有人使用用户界面代码来可视化数学图像分析.在此过程中,我们将2D形状的一部分分割为三角形,并在UI上填充其中一些三角形.

我们正在寻找一种填充算法,该算法可以保证如果两个三角形共享一条边(具体来说,如果三角形的任意两个顶点相同),那么无论绘制顺序和锯齿是什么,线上都不会有空白的未拉伸像素两者之间.(如果某些像素被绘制两次,那就没问题.)在任意缩放下,结果应该看起来不错.某些三角形可能是非常薄的细长条,宽度低至1像素.

理想情况下,它也应该是一个合理有效的填充算法!

在三角形渲染中不会使用消除锯齿,因为最终图像需要为1位深度.

上下文是图像识别应用程序,因此所有顶点坐标都精确到一个像素.

c graphics drawing drawing2d

10
推荐指数
1
解决办法
7850
查看次数

C++三角栅格化

我正在尝试修复此三角形光栅化器,但无法使其正常工作.出于某种原因,它只绘制了一半的三角形.

void DrawTriangle(Point2D p0, Point2D p1, Point2D p2)
{
    Point2D Top, Middle, Bottom;
    bool MiddleIsLeft;

    if (p0.y < p1.y)                    // case: 1, 2, 5
    {
        if (p0.y < p2.y)                // case: 1, 2
        {
            if (p1.y < p2.y)            // case: 1
            {
                Top = p0;
                Middle = p1;
                Bottom = p2;
                MiddleIsLeft = true;
            }
            else                        // case: 2
            {
                Top = p0;
                Middle = p2;
                Bottom = p1;
                MiddleIsLeft = false;
            }
        }
        else                            // case: 5
        {
            Top …
Run Code Online (Sandbox Code Playgroud)

c++ graphics rasterizing

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

graphics ×2

c ×1

c++ ×1

drawing ×1

drawing2d ×1

rasterizing ×1