使用'lineTo()'绘制形状,我需要检查绘制的线是否创建一个闭合的形状。 如果是这样,我需要用颜色填充该形状。 有人可以告诉我这是否可行,如果有的话请告诉我。 感谢
答案 0 :(得分:0)
在使用lineTo之前,请调用beginFill。像这样:
var _s:Sprite = new Sprite();
_s.graphics.beginFill(0xFF0000);
_s.graphics.lineStyle(1, 0xFFFF00);
_s.graphics.lineTo(50, 0);
_s.graphics.lineTo(50, 50);
_s.graphics.lineTo(0, 50);
_s.graphics.lineTo(0, 0);
_s.graphics.endFill();
addChild(_s);
P.S。如果对你有所帮助,不要忘记接受答案。
答案 1 :(得分:0)
最快的解决方案可能是将路径存储为正在绘制的点列表,然后针对交叉点检查每个新段与现有段。无论何时找到,都按此顺序绘制一个单独的循环:
一个潜在的问题是,如果你绘制一些小环,然后围绕它们,你最终会得到一个与自身相交的大填充并重叠小环,这可能会沿着边缘渲染得很差。
理想情况下,您需要创建添加了任何交叉点的路径图,然后查找未包含在另一个周期内的每个周期,但这显然更复杂一些。之前的问题有一些答案与找到不包含其他循环的所有循环有关,可以通过组合共享边的循环来调整: Find all chordless cycles in an undirected graph