图形 - 重叠的bug还是什么?

时间:2010-09-17 18:03:45

标签: actionscript-3 graphics vector-graphics

我这里有相当大的代码......但幸运的是,根本不需要提及它。它归结为......失败的东西?因此,最终应该绘制两个三角形(使用AS3 Graphics)。它适用于一个,但当我在那里放一秒时,它看起来很奇怪。我跟踪调试它,我认为这个bug在图形中 - 这是我绘制的实际点的输出:

DRAW
- POINT ( 50 , -50 )
- POINT ( -50 , 50 )
- POINT ( 50 , 50 )
DRAW
- POINT ( -50 , -50 )
- POINT ( 50 , -50 )
- POINT ( -50 , 50 )

(x,y),两个三角形。这将产生一种颜色的正方形(这些三角形是一种颜色),或者如果我要改变颜色,可能会将正方形分成两半。

会......但事实并非如此。

相反,我得到了这个:

alt text

OR(这很奇怪),当我切换绘制三角形的顺序时: alt text

...

知道发生了什么事吗? 我已经在另一个论坛上看到函数beginFill和endFill应该在绘制每个形状之前和之后被调用 - 显然这就是我在查看之前所做的事情 - 颜色不会与其他方式不同。那么 - 任何想法?

编辑:

图形调用如下所示:

for (var vi:int = 0; vi < triangles.length; vi++){
    gfx.beginFill(0xFF0000, 0.5 + (0.5 * vi));
    trace("DRAW");
    trace("- POINT ( " + triangles[vi].points[0].x + " , " + triangles[vi].points[0].y + " )");
    trace("- POINT ( " + triangles[vi].points[1].x + " , " + triangles[vi].points[1].y + " )");
    trace("- POINT ( " + triangles[vi].points[2].x + " , " + triangles[vi].points[2].y + " )");
    gfx.lineTo(triangles[vi].points[0].x, triangles[vi].points[0].y);
    gfx.lineTo(triangles[vi].points[1].x, triangles[vi].points[1].y);
    gfx.lineTo(triangles[vi].points[2].x, triangles[vi].points[2].y);
    gfx.lineTo(triangles[vi].points[0].x, triangles[vi].points[0].y);
    gfx.endFill();
}

1 个答案:

答案 0 :(得分:0)

第一个gfx.lineTo应为gfx.moveTo