Actionscript 3 位图图形绘制,如何为线条添加厚度?
以下函数将通过设置位图上的像素来绘制正弦波。但是你怎么把界线画得更粗呢?无需借助图形APIActionscript 3 位图图形绘制,如何为线条添加厚度?,actionscript-3,math,graphics,graph,bitmap,Actionscript 3,Math,Graphics,Graph,Bitmap,以下函数将通过设置位图上的像素来绘制正弦波。但是你怎么把界线画得更粗呢?无需借助图形API function drawWave(amp:int, freq:int):void { for (var i:int = 0; i < stage.stageWidth; i++) { var ang:Number = 2 * Math.PI * freq * i/stage.stageWidth; bmd.setPixel(i, yaxis - am
function drawWave(amp:int, freq:int):void
{
for (var i:int = 0; i < stage.stageWidth; i++)
{
var ang:Number = 2 * Math.PI * freq * i/stage.stageWidth;
bmd.setPixel(i, yaxis - amp * Math.sin(ang), 0xff0000);
}
}
函数drawWave(amp:int,freq:int):无效
{
对于(变量i:int=0;i
尝试此操作-根据需要调整线宽:
function drawWave(amp:int, freq:int):void
{
var lineWidth:Number = 10;
var shape:Shape = new Shape();
var g:Graphics = shape.graphics;
g.lineStyle(lineWidth, 0xFF0000);
for (var i:int = 0; i < stage.stageWidth; i++)
{
var ang:Number = 2 * Math.PI * freq * i/stage.stageWidth;
var ypos:Number = yaxis - amp * Math.sin(ang);
if (i==0)
g.moveTo(i, ypos);
else
g.lineTo(i, ypos);
}
bmd.draw(shape);
}
根据需要替换宽度和高度,它将绘制矩形,而不是单个像素-给出一条更粗的线,但我认为不是很漂亮如果您希望线更粗,我建议使用圆的位图数据,而不是使用setPixel,请使用draw()
当然,您需要根据圆的大小偏移圆的绘制位置。-宽度/2和-height/2使用graphics.lineTo等(宽度由您选择)将线条绘制到形状对象中。然后使用bitmapData复制整个图形。draw(shape)感谢大家对图形API的了解,但是我想作为一个学习练习,我希望远离图形API,同时也让我能够更轻松地移植代码。
bmd.drawRect(new Rectangle(i-WIDTH*0.5, yaxis-amp*Math.sin(ang)-HEIGHT*0.5, WIDTH, HEIGHT), 0xff0000);