【问题标题】:draw a circular arc in MXML Graphics在 MXML Graphics 中绘制圆弧
【发布时间】:2011-02-20 15:45:07
【问题描述】:

有没有一种简单的方法可以在不涉及贝塞尔曲线的 MXML 图形中绘制圆弧?还是我应该创建自己的组件?

谢谢!

f

【问题讨论】:

    标签: apache-flex graphics flex4 mxml


    【解决方案1】:

    我最终创建了自己的 mxml 图形组件来绘制弧线。我覆盖 Ellipse Spark 原语并使用 AS 进行弧数学 - 主要复制 this great post,它指向 this code。

    【讨论】:

      【解决方案2】:
      <s:Ellipse height="16" width="16">
          <s:stroke>
              <s:SolidColorStroke color="0x000000" joints="square" caps="square"/>
          </s:stroke>
          <s:fill>
              <s:SolidColor color="0x000000"/>
          </s:fill>
      </s:Ellipse>
      

      【讨论】:

        【解决方案3】:

        您可以使用Path 类绘制曲线。您将其data 属性设置为一个字符串,其中包含执行光标放置和绘图操作的交替命令和数值。命令是:

        • C - 绘制贝塞尔曲线。
        • H - 画一条水平线。
        • L - 画一条线。
        • M - 移动光标。
        • Q - 绘制二次贝塞尔曲线。
        • V - 画一条垂直线。
        • Z - 关闭路径。

        如何将其与 FXG 一起使用的示例如下:

        <s:Path data="M 20 0
                C 50 0 50 35 20 35
                L 15 35 L 15 45
                L 0 32 L 15 19
                L 15 29 L 20 29
                C 44 29 44 6 20 6">
            <s:stroke>
                <s:SolidColorStroke color="0x000000" weight="1"/>
            </s:stroke> 
        </s:Path>
        

        你可以在这里找到更多信息:

        http://help.adobe.com/en_US/flex/using/WS5B6A8436-0FF5-4029-8524-C7C1106C483D.html

        【讨论】:

        • 正确 - 谢谢。所以这个问题是,这似乎都是通过贝塞尔曲线,通常在圆弧上做得不好。所以我猜从我可以在谷歌和这里收集的信息中,没有直接在 MXML 中的圆弧。我想知道是否需要在 AS 中编写自己的类,然后在 MXML 中编写使用它。我想这就是我要走的路,除非我听到任何其他更惊人的想法。无论如何,谢谢你的回复!
        • 对不起,不 - 问题是有一种方法不涉及贝塞尔曲线。
        【解决方案4】:

        是的,有。如果将用于绘图的代码包含在单独的类中是否有意义,则取决于您,并且是软件架构的问题。

        你可以用绘图 api 来管理绘制曲线。看看这个link

        BR弗兰克

        编辑:20.02.2011 - 21:12 另一个没有贝塞尔曲线的想法可以是数学课。这是一个绘制正弦曲线的小例子Link

        【讨论】:

        • 弗兰克,感谢您的回答。虽然看起来不像 MXML 图形。此外,看起来这都是通过贝塞尔曲线 - 没有直接的圆弧......
        • 你想如何绘制没有贝塞尔曲线的曲线?您的弧线的目标是什么?为什么要寻找没有贝塞尔曲线的解决方案?另一种可能性是逐点绘制曲线。
        • 很想画一个圆弧 (en.wikipedia.org/wiki/Arc_(geometry)。你不应该为此需要贝塞尔曲线 - 事实上贝塞尔曲线在画圆方面做得并不完美。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多