Actionscript 3 位图图形绘制,如何为线条添加厚度?

Actionscript 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

以下函数将通过设置位图上的像素来绘制正弦波。但是你怎么把界线画得更粗呢?无需借助图形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 - 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);