绘制平底三角形,得到平顶三角形

时间:2016-10-28 17:09:56

标签: c++ graphics

我正在尝试绘制一个平底三角形,但它绘制为平顶三角形。 我想在数学方面知道我做错了什么

这是我的代码

void Rasterizer::DrawBottomTriangle(int x0, int y0, int x1, int y1, int x2, int y2, Color color)
{
    int temp_x;
    // test order of x1 and x2
    if (x2 < x1)
    {
        temp_x = x1;
        x1 = x2;
        x2 = temp_x;
    } //

    float dxy_left = (float)(x2 - x0) / (y2 - y0);
    float dxy_right = (float)(x1 - x0) / (y1 - y0);

    // set starting and ending points for edge trace
    float xs = x0;
    float xe = x0;

    // draw each scanline
    for (int y = y0; y >= y1; y--)
    {
        // draw a line from xs to xe at y in color c
        DrawLine(color, (int)xs, y, color, (int)xe, (int)y);
        // move down one scanline
        xs += dxy_left;
        xe += dxy_right;
    } // end for y
}

0 个答案:

没有答案