Taylor Sine approximation

by FLASHMAFIA forked from fastest bitmap line algorithm? (diff: 301)
- underwork -
♥0 | Line 39 | Modified 2015-10-06 22:03:42 | MIT License
play

ActionScript3 source code

/**
 * Copyright FLASHMAFIA ( http://wonderfl.net/user/FLASHMAFIA )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/27TA
 */

// forked from FLASHMAFIA's fastest bitmap line algorithm?
package
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;

    [SWF(frameRate=60)]
    public class WFLTaylor extends Sprite
    {
        function WFLTaylor()
        {
            var dst : BitmapData;
            addChild(new Bitmap(dst = new BitmapData(465, 465, false, 0xDCDCDC)));

            var th : Number = 0.0;
            var step : Number = Math.PI * 2 / 100;
            
            while (th < Math.PI * 2)
            {
                th += step;
                
                var px : Number = (465 / 2) + 100 * taylor(th);
                var py : Number = (465 / 2) + 100 * taylor((Math.PI / 2) - th);
                
                dst.setPixel(px, py, 0x000000);
            }

            
        }
        
        [Inline]
        final private function taylor(x : Number) : Number
        {
            var x2 : Number = x * x;
            var ret : Number = x;
            x *= x2;
            ret -= x / 6;
            x *= x2;
            ret += x / 120;
            x *= x2;
            ret -= x / 5010;

            return ret;
        }
    }
}