1

Agal を使用して Stage3D のビットマップに線を描画するにはどうすればよいですか? 誰かがコード例を提供できますか?

4

2 に答える 2

2

Starlingを使用している場合は、次のことを試すことができます。

/**
 * Class Line
 * @author Leandro Barreto 2012
 * @version 1.0
 **/

package starling.utils
{
    import starling.display.Quad;
    import starling.display.Sprite;

    public class Line extends Sprite
    {
        private var baseQuad:Quad;
        private var _thickness:Number = 1;
        private var _color:uint = 0x000000;

        public function Line()
        {
            baseQuad = new Quad(1, _thickness, _color);
            addChild(baseQuad);
        }

        public function lineTo(toX:int, toY:int):void
        {
            baseQuad.width = Math.round(Math.sqrt((toX*toX)+(toY*toY)));
            baseQuad.rotation = Math.atan2(toY, toX);
        }

        public function set thickness(t:Number):void
        {
            var currentRotation:Number = baseQuad.rotation;
            baseQuad.rotation = 0;
            baseQuad.height = _thickness = t;
            baseQuad.rotation = currentRotation;
        }

        public function get thickness():Number
        {
            return _thickness;
        }

        public function set color(c:uint):void
        {
            baseQuad.color = _color = c;
        }

        public function get color():uint
        {
            return _color;
        }
    }
}

Starlingフォーラムで、2つのポイントを接続するいくつかの四角形を描画するLineクラスを作成することを提案した人がいます。このチュートリアルでは、シェーダーにAGALを使用してポリゴンを作成する方法を示します。

http://wiki.starling-framework.org/manual/custom_display_objects

于 2012-05-16T15:30:10.853 に答える
1

最近、Stage3D で線を描画するための簡単なライブラリを作成しました。
それはゼブロイドと呼ばれます、https://github.com/luwes/Zebroid

Zebroid はまだライン キャップまたはジョイントをサポートしていません。

于 2012-05-21T07:15:08.610 に答える