2012-11-08 27 views
0

我想在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

我似乎無法得到我需要的結果!

+0

嘗試'currentMask.graphics.lineStyle(0.5,0xFFFF0000,1,true);'開啓像素提示。 0.5像素是爲了使實際的線條更薄。 – Vesper

+0

像素暗示做什麼? –

+0

[注意](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#lineStyle%28%29)它應該定位您的路徑點,以便您的路線將正確對齊像素。 – Vesper

回答

0

嘗試currentMask.graphics.lineStyle(1,0xFFFF0000,1,true); - 將lineStyle線條粗細設置爲1

+0

仍然在我的帖子中獲得第二張圖片,而不是像[THIS]這樣的完美三角形(http://s17.postimage.org/9mgtg9p8t/perfect_triangle.png) –

+0

該圖片有21個像素 - 其他圖片不顯示起來,所以我無法比較。 – Gone3d

+0

哪個圖像看不到? –