2

我正在为基于 Flash 的应用程序开发一个简单的图形编辑器。在我的编辑器中有缩放的可能性,缩放范围很大(最大比例为16.0,最小比例为0.001,默认比例为0.2)。因此,用户很有可能绘制一条粗细为0.1或的线300.0,并且看起来粗细的线 (in Graphics.lineStyle()) 具有上边框。正如我从livedocs中发现的,最大值是255. 因此,如果厚度更大,则255.0绘制一条厚度线255.0。提到的上边界是否存在以及它有多大。这是我的问题:

  1. 现在我正在用drawPath()orlineTo()方法画线。如果厚度更大,自然 walkarround255.0是绘制一个矩形而不是段,并在段的末端绘制两个圆圈(而不是lineTo())。或者甚至绘制两个细线段和两个半圆并填充内部。也许有更优雅/快速的解决方案?
  2. 另一个问题是,如果线的粗细很大但小于255.0(例如100.0),用什么画一条线lineTo()或画两条细线段和两个半圆并填充内部更快?
  3. 最后,也许有人知道一篇很好的文章/书,我可以在其中阅读所有flash.display.Graphics类方法中的内容(甚至不是关于图形的特定文章/书)?

任何想法表示赞赏。先感谢您!

4

1 回答 1

4

我同意 fa 将线放入容器中可能比绘制矩形和额外的圆圈更好、更有效。

我认为数学计算不会太难。为了提高效率,你应该只在线条样式超过 255 时才这样做。

要设置显示对象以保持您的线条,我首先将线条的宽度减半(长度可以保持不变)。然后创建一个新的精灵并在精灵中以一半大小绘制线条(例如,如果您想要 300,只需将其绘制为 150)。最简单的方法是从 (0,0) 开始并笔直绘制线段,这样您的所有变换都可以应用于新的精灵。

从这里您可以将精灵的 scaleY 加倍以获得所需的线宽。它应该保持相同的长度,并且端部也应该正确修圆。

希望这有所帮助!

使用图形类的一个很酷的资源是 Flash 和 Math。这个站点有几个很酷的效果和工作示例和源代码。

http://www.flashandmath.com/

于 2012-10-22T15:10:35.807 回答