У меня здесь довольно большой код ... Но, к счастью, его вообще не нужно упоминать. Это сводится к тому, что ... не удается? Таким образом, в итоге предполагается нарисовать два треугольника (используя AS3 Graphics). Он отлично работает с одним, но когда я помещаю туда второе, это выглядит странно. Я отследил отладку, и я думаю, что ошибка в графике - это мой вывод для реальных точек:
DRAW
- POINT ( 50 , -50 )
- POINT ( -50 , 50 )
- POINT ( 50 , 50 )
DRAW
- POINT ( -50 , -50 )
- POINT ( 50 , -50 )
- POINT ( -50 , 50 )
(х, у), два треугольника. Это привело бы к квадрату одного цвета (эти треугольники одного цвета) или, возможно, к квадрату, разделенному пополам, если бы я изменил цвета.
Будет ... Это не так.
Вместо этого я получаю ЭТО:
![alt text](https://i.stack.imgur.com/KO1C3.png)
ИЛИ (что странно), когда я переключаю порядок, в котором нарисованы треугольники:
![alt text](https://i.stack.imgur.com/T1LGk.png)
...
Есть идеи, что происходит?
Я читал на другом форуме, что функции beginFill и endFill должны вызываться до и после рисования каждой фигуры - очевидно, это то, что я делал даже до того, как посмотрел - цвет не будет отличаться в другом случае. Итак - есть идеи?
EDIT:
Графические вызовы выглядят так:
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();
}