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);
そしてこれは私が得る結果です:
必要な結果が得られないようです。