我这里有相当大的代码......但幸运的是,根本不需要提及它。它归结为......失败的东西?因此,最终应该绘制两个三角形(使用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),两个三角形。这将产生一种颜色的正方形(这些三角形是一种颜色),或者如果我要改变颜色,可能会将正方形分成两半。
会......但事实并非如此。
相反,我得到了这个:
OR(这很奇怪),当我切换绘制三角形的顺序时:
...
知道发生了什么事吗? 我已经在另一个论坛上看到函数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();
}
答案 0 :(得分:0)
第一个gfx.lineTo
应为gfx.moveTo
。