我想在ActionScript 3中繪製一個簡單的三角形。AS3'drawPath'簡單形狀繪圖不正確 - 爲什麼?
我使用'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)
三角形繪製公頃s指向爲:
- (0,0)
- (19,0)
- (19,19)
這裏是一個screenshot我從油漆刷了,與示出像素:
image http://s8.postimage.org/7npsvhvpv/alpha_Bitmap_Data_custom_draw.png
爲什麼三角形不正確的座標繪製??
。
。
UPADTE:
我已經嘗試過了 'drawPath' 前加上這一行:
currentMask.graphics.lineStyle(1, 0xFFFF0000);
,這是result我得到:
result http://s8.postimage.org/x6hn1g183/alpha_Bitmap_Data_custom_draw_with_line.png
我似乎無法得到我需要的結果!
嘗試'currentMask.graphics.lineStyle(0.5,0xFFFF0000,1,true);'開啓像素提示。 0.5像素是爲了使實際的線條更薄。 – Vesper
像素暗示做什麼? –
[注意](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#lineStyle%28%29)它應該定位您的路徑點,以便您的路線將正確對齊像素。 – Vesper