0

ActionScript3で単純な三角形を描きたいです。

'Graphics'クラスの'drawPath'メソッドを使用します。

コードスニペットは次のとおりです。

stage.stage.quality = StageQuality.LOW;         // Change quality to low so no anti-aliasing occurs
var trianglePoints:Vector.<Number> = new Vector.<Number>();

trianglePoints.push(0);     trianglePoints.push(0);     // Coordinate (0,0)
trianglePoints.push(20);    trianglePoints.push(0);     // Coordinate (20,0)
trianglePoints.push(20);    trianglePoints.push(20);    // Coordinate (20,20)
trianglePoints.push(0);     trianglePoints.push(0);     // Coordinate (0,0) - tried with and without this coordinate return

var commands:Vector.<int> = new Vector.<int>(4);
commands.push(1);   // Move to
commands.push(2);   // Line to
commands.push(2);   // Line to
commands.push(2);   // Line to

var drawSprite:Sprite = new Sprite();

drawSprite.graphics.beginFill(0xFFFF0000);          // Color Red
drawSprite.graphics.drawPath(commands, trianglePoints); // Draw the path
drawSprite.graphics.endFill();

var bd:BitmapData = new BitmapData(100, 100, true, 0x0000FF00);
bd.draw(drawSprite);

var pngBytes:ByteArray = PNGEnc.encode(bd);
var fileReference:FileReference = new FileReference();
fileReference.save(pngBytes,"bd_custom_draw.png");

stage.stage.quality = StageQuality.HIGH;

理由はわかりませんが、三角形の代わりに:に点があります

  • (0,0)
  • (20,0)
  • (20,20)

描かれた三角形には次の点があります。

  • (0,0)
  • (19,0)
  • (19,19)

これが私がPaint-Brushから撮ったスクリーンショットで、ピクセルが表示されています。

画像

三角形が正しい座標で描画されないのはなぜですか?

Upadte:

'drawPath'の直前にこの行を追加しようとしました:

currentMask.graphics.lineStyle(1, 0xFFFF0000);

そしてこれは私が得る結果です:

結果

必要な結果が得られないようです。

4

1 に答える 1

0

currentMask.graphics.lineStyle(1、0xFFFF0000,1、true);を試してください。-lineStyleの線の太さを1に設定します

于 2012-11-08T15:32:00.543 に答える