我正在为基于闪存的应用开发一个简单的图形编辑器。在我的编辑器中,存在缩放的可能性,缩放范围很大(最大比例为16.0
,最小比例为0.001
,默认比例为0.2
)。因此,用户很可能可以绘制厚度为0.1
或300.0
的线条,并且看起来线条可能的厚度(在Graphics.lineStyle()
中)具有上边框。正如我从livedocs发现的最大值是255
。因此,如果厚度大于255.0
,则会绘制一条厚度为255.0
的线。是否提到上边界存在,有多大。这是我的问题:
drawPath()
或lineTo()
方法绘制线条。如果厚度大于255.0
,则自然walkarround是绘制矩形而不是段和段末端的两个圆(而不是lineTo()
)。甚至可以绘制两个薄片和两个半圆并填充内部。也许有更优雅/快速的解决方案?255.0
(例如100.0
),那么用lineTo()
绘制线条或绘制两个细线段和两个半线的速度更快 - 圈和填充内部?flash.display.Graphics
课程的所有方法内部的内容(甚至不是关于图形的flash特定文章/书籍)? 任何想法都表示赞赏。提前谢谢!
答案 0 :(得分:4)
我同意f-a将线放在容器中可能比绘制矩形和额外的圆更好更有效。
我认为数学不太难以解决。为了提高效率,如果线条样式超过255,则应该只执行此操作。
要设置显示对象来保持你的线,我会从你的线的宽度减半开始(长度可以保持不变)。然后创建一个新的精灵并在精灵中以半角绘制线条(例如,如果你想要300,只需在150处绘制它)。从(0,0)开始并直接绘制线段以便将所有变换应用于新精灵将是最简单的。
从这里你可以加倍精灵的scaleY以获得所需的线宽。它应保持相同的长度,并且末端也应正确舍入。
希望这有所帮助!
使用图形类的一个很酷的资源是Flash和Math。这个网站有几个很酷的效果和工作示例和源代码。