canvas绘制旋转转盘

查看示例在这里 ☞ roundPlate示例

效果:http://www.suanier.com/

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
    <meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″/>
    <link rel="shortcut icon" href="images/send.jpg" type="/image/x-icon">
    <link rel="stylesheet" href="http://v3.faqrobot.org/hvb/com/css/reset.css?dev=1">

    <script type="text/javascript" src="http://v3.faqrobot.org/hvb/com/js/jquery-1.11.3.min.js?dev=1"></script>
    <script type="text/javascript" src="http://v3.faqrobot.org/hvb/com/js/base.js?dev=1"></script>
    <script type="text/javascript" src="http://v3.faqrobot.org/hvb/com/js/layer.js?dev=1"></script>
    <title>photoshow</title>

    <style>
        body, html {
            width: 100%;
            height: 100%;
        }
        html {
        }
        #photoshow {
            width: 1200px;
            margin: 0 auto;
            background: #fff;
        }
        @media screen and (max-width: 800px) {
            #photoshow {
                width: 100%;
            }
        }
        @media screen and (min-width: 800px) and (max-width: 1200px) {
            #photoshow {
                width: 800px;
            }
        }
        @media screen and (min-width: 1200px) {
            #photoshow {
                width: 1200px;
            }
        }
        #cav_totate {
            width: 80%;
            height: 80%;
            outline: 1px solid blue;
            margin: 0 auto;
            position: relative;
        }
        canvas {
            outline: 1px solid red;
            position: absolute;
            top: 0;
            left: 0;
        }
        

    </style>
</head>
<body>
    <div id="cav_totate">
        <canvas class="cav_robot"></canvas>
        <img class="RO_robot" src="images/robot.png" alt="机器人">
    </div>
    
<script>
    ;$(function() {
        var $cav_totate = $('#cav_totate'),
            $RO_robot = $('.RO_robot'),
            $cav_robot = $('.cav_robot');

        var size = [$cav_totate.width(), $cav_totate.height()];


        $cav_robot.attr({
            'width': size[0],
            'height': size[1],
        }).on('mousemove', function() {
            
        });

        //robot
        var cav_robot = $cav_robot[0].getContext('2d');
        var robot_R = [120, 120];//半径
        var round1_R = [115, 105];//半径
        var round2_R = [180, 165];//半径
        var round3_R = [205, 145];//半径
        var angle = 0;//角度
        var slope = 0;//倾斜度

        setInterval(function() {
            //图片
            cav_robot.clearRect(0, 0, $cav_totate.width(), $cav_totate.height());
            cav_robot.save();
            cav_robot.translate(size[0]/2, size[1]/2);//移动原点
            cav_robot.fillStyle = "#0C0C0E";
            cav_robot.beginPath();
            cav_robot.drawImage($RO_robot[0], 0, 0, 80, 80, -robot_R[0]/2, -robot_R[1]/2, robot_R[0], robot_R[1]);//5 6
            cav_robot.fill();
            cav_robot.restore();
        
            //扇形圈
            cav_robot.save();
            cav_robot.translate(size[0]/2, size[1]/2);//移动原点

            cav_robot.strokeStyle = "#0C0C0E";
            cav_robot.beginPath();
            cav_robot.arc(0, 0, round1_R[0], 0, 2*Math.PI);
            cav_robot.stroke();
            cav_robot.closePath();
            cav_robot.beginPath();
            cav_robot.rotate(angle*Math.PI/180);
            cav_robot.moveTo(0, -round1_R[0]);
            cav_robot.lineTo(0, -round1_R[1]);
            cav_robot.arc(0, 0, round1_R[1], -90*Math.PI/180, -30*Math.PI/180);
            cav_robot.stroke();
            cav_robot.closePath();

            cav_robot.rotate((60)*Math.PI/180);
            cav_robot.beginPath();
            cav_robot.moveTo(0, -round1_R[0]);
            cav_robot.lineTo(0, -round1_R[1]);
            cav_robot.stroke();
            cav_robot.closePath();
            cav_robot.restore();

            //线圈
            cav_robot.save();
            cav_robot.translate(size[0]/2, size[1]/2);//移动原点

            cav_robot.rotate(-angle*Math.PI/180);
            for(var i=0; i<120; i++) {
                cav_robot.beginPath();
                cav_robot.rotate(3*Math.PI/180);
                cav_robot.moveTo(0, -round2_R[0]);
                cav_robot.lineTo(0, -round2_R[1]);
                cav_robot.stroke();
                cav_robot.closePath();
            }
            cav_robot.restore();


            //点圈
            cav_robot.save();
            cav_robot.translate(size[0]/2, size[1]/2);//移动原点

            cav_robot.rotate(angle*Math.PI/180);
            for(var i=0; i<120; i++) {
                cav_robot.beginPath();
                cav_robot.rotate(3*Math.PI/180);
                cav_robot.arc(0, round3_R[0], 1, 0, 2*Math.PI);
                cav_robot.fill();
                cav_robot.closePath();
            }
            cav_robot.restore();

            cav_robot.save();
            cav_robot.translate(size[0]/2, size[1]/2);//移动原点
            for(var i=0; i<4; i++) {
                cav_robot.rotate(90*Math.PI/180);
                cav_robot.beginPath();
                cav_robot.moveTo(-5, round3_R[1]);
                cav_robot.lineTo(5, round3_R[1]);
                cav_robot.lineTo(0, round3_R[1]+5);
                cav_robot.fill();
                cav_robot.closePath();
            }
            cav_robot.restore();
            angle -= .2;
        }, 50);
        










    });
</script>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值