代码改变世界

javascript正弦曲线

2010-06-24 14:33  BlueDream  阅读(1451)  评论(1编辑  收藏  举报

【程序示例】

 

【程序源码】

var math = function() {
    function T$(i) { return document.getElementById(i); }
    var xlen = T$('content').clientWidth; x_posy = T$('content').clientHeight / 2, angle = 0;

    function drawSine(amp) {
        var self = this;
        if (!(self instanceof drawSine)) {
            return new drawSine(amp);
        } 
        self.amp = amp;
        self.initialize();
    }

    drawSine.prototype = {
        initialize: function() {
            var self = this;
            self.drawXaxis();
            self.drawYaxis();
        },

        drawXaxis: function() {
            var self = this;
            for (var i = 0, arr = []; i < xlen; ++i) {
                arr[i] = self.createDot(1, 1, i, x_posy, '#213478');
            } 
            T$('graph').innerHTML += arr.join('');
        },

        drawYaxis: function() {
            var self = this, amp = self.amp;
            for (var i = 0, arr = []; i < xlen; ++i) {
                arr[i] = self.createDot(2, 2, i += amp, x_posy + Math.sin(angle+=.1) * x_posy, '#FF9933');
            } 
            T$('graph').innerHTML += arr.join('');
        },

        createDot: function(w, h, x, y, c) {
            return '<div style="width:'+w+'px;height:'+h+'px;font-size:0;background-color:'+c+';position:absolute;left:'+x+'px;top:'+y+'px;"><\/div>';
        }
    }

    return {drawSine: drawSine}
}();

math.drawSine(2 /* 波长 */);

【源码下载】

drawSine