我试图在同一个Sprite.graphics范围内绘制多个形状,似乎无法找到任何合理的解决方案,我的问题。AS3 - drawPath()&缠绕重叠产生奇怪的行为
请注意,我一直在使用drawPath()方法来处理性能问题:我可以对blendmodes使用多个形状,但是我希望避免这种情况,并将性能降至最低。
我一直在试验drawPath()方法的绕组参数,但我不明白的一件事是绕组方向是如何由Flash定义的,所以这里是第一个问题,问题: 是否考虑了点坐标?或者是定义方向的生产线之间的角度?
这就是说,这是我的实际问题: 我想绘制一个形状,从一个矩形在一条线上的投影 - 想象一个窗口和穿过它的光线,然后击中地板。
为了实现这个目标,我必须考虑到的是,lightsource位置可以有所不同,有什么样的结果:
这里对第二张照片,你已经可以看到我正面临的问题。为了绘制我的形状,我已经分别“绘制”(理解:将数字放在我的坐标向量中)我的身材的不同部分:我想要投影的实际矩形,从左侧投射的光,光线从底部投射,从右侧投射光线。
我一直试图从左上角开始小心保持每个部分的绕线方向相同,但是在我的推理中似乎有些问题,因为每次中心部分都与任何侧面部分重叠,那里的形状被清空,并且每当双方部分重叠时,发生同样的情况。
正如我写在这里,一些启示突然罢工了我,现在我想,也许我所有点在我的坐标向量必须在相同的缠绕方向被分类为我的造型工作?... (而不仅仅是我在脑海中分开绘制的小部分^^)
如果我是对的(如果我不是,请纠正我,或者我已经理解错了什么?) ,这意味着我必须:
排序我的要点放置在正确的绕组方向(可能是复杂的东西, ld导致一些奇怪的绘制形状一旦提供给绘图API?)
只从最外部点绘制形状,取决于形状的实际形状(可能更复杂,我目前期望的东西)。
任何人都可以在这里确认或体弱我最后的设想,给我有什么可以怎么回事线索,如何解决呢?...
非常感谢:-)
不确定你的具体问题,但想知道你是否已经阅读过关于控制绕组的文档...可能会有所帮助,但也许你已经通过它http://help.adobe.com/en_US/ ActionScript 3.0编程AS3/WS1EE3740D-F65C-43bf-9B12-74E34D7D1CBE.html – shaunhusain
更确切地说,'GraphicsPathWinding.NON_ZERO'是你需要为你的填充样式设置的。其实,我会用两层做你想做的,顶层包含光线,底层包含窗口。你将不得不使用BlendMode来获得所需的效果。 – Vesper
感谢您的答案,但实际上我已经浏览了文档,并且还使用了GraphicsPathWinding.NON_ZERO参数,但结果不会做出我想要的结果......在文档中,没有说明绕组方向实际上是定义的,它只表示“渲染器解释坐标的顺序”。但是,这是由前两组坐标定义的方向,在解析矢量时不断重新定义......?我宁愿只使用单一的形状,而不是使用BlendModes来实现这一点,但我仍然不能确切的形状,因为我想... – elFlashor