• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    HTML5 Canvas实现玫瑰曲线和心形图案的代码实例

    效果图:
     

    提示:把代码复制到一个html文件中并保存,直接打开即可看到效果。

    实现代码:
     

     

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset = "gbk">
    <title>HTML5 Demo</title>
    <style type="text/css">
    #apDiv1 {
    position:absolute;
    width:120px;
    height:300px;
    z-index:1;
    left: 840px;
    top: 80px;
    }
    </style>
    </head>
    <body>
    <canvas id="canvas" width="800" height="600" style="border:1px solid #c3c3c3;"> 
    Your browser does not support the canvas element. </canvas> 
    <div id="apDiv1">
    <form>
    玫瑰曲线方程:<br>
    r=a+bsin(m/n*x)<br><br>
    选择参数:<br><br>
    m: <input type="number" name="m" min="2" max="29" value="29"/><br><br>
    n: <input type="number" name="n" min="1" max="12" value="11"/><br><br>
    a: <input type="number" name="a" min="0" max="5" value="1"/><br><br>
    b: <input type="number" name="b" min="1" max="7" value="5"/><br><br>
    <input type="button" value=" 画 图 " onClick="draw();"><br><br>
    <hr><br>
    <input type="button" value=" 画 图 2 " onClick="draw2();"><br><br>
    <hr><br>
    <input type="button" value=" 心形图 " onClick="draw3();"><br>
    </form>
    </div>
    <script type="text/javascript"> 
    function draw() { 
    var ctx = document.getElementById('canvas').getContext('2d'); 
    ctx.save(); 
    ctx.translate(400,300); 
    ctx.clearRect(-400,-300,800,600);
    ctx.strokeStyle = "#cc0000"; 
    var a = 0, b = 1, m = 6, n = 1;
    m = document.forms[0].m.value;
    n = document.forms[0].n.value;
    a = document.forms[0].a.value; 
    b = document.forms[0].b.value; 
    drawRose(ctx,a,b,m,n); 
    ctx.restore(); 
    } 
    function drawRose(ctx,a,b,m,n){ 
    ctx.beginPath(); 
    var e = 0, c = 120; 
    var k = 2 * Math.PI / 360;
    do { 
    var r = a/b + Math.sin( m * e / n * k);
    r = r * c; 
    var x = r * Math.cos( e * k );
    var y = r * Math.sin( e * k );
    e += 0.1; 
    ctx.lineTo(x,y); 
    } while ( e <= 4320 ); 
    ctx.stroke(); 
    } 
    function draw2(){ 
    var ctx = document.getElementById('canvas').getContext('2d'); 
    ctx.save(); 
    ctx.translate(400,300); 
    ctx.clearRect(-400,-300,800,600);
    ctx.strokeStyle = "#cc0000"; 
    ctx.beginPath(); //ctx.moveTo(0,0);
    var e = 0, c = 150; 
    var k = 2 * Math.PI / 360;
    do { 
    x = 150*Math.cos( 5/2 * e*k ) + 50*Math.cos( 15/16 * 5/2 * e*k ); 
    y = 150*Math.sin( 5/2 * e*k ) - 50*Math.sin( 15/16 * 5/2 * e*k ); 
    e += 0.1; 
    ctx.lineTo(x,y); 
    } while ( e <= 3600 ); 
    ctx.stroke(); 
    ctx.restore();
    } 
    function draw3(){ 
    var ctx = document.getElementById('canvas').getContext('2d'); 
    ctx.save(); 
    ctx.translate(400,300); 
    ctx.clearRect(-400,-300,800,600);
    ctx.strokeStyle = "#ff0000"; 
    ctx.beginPath(); 
    var x = 1, y;
    do { 
    y = -80*(Math.sqrt(1-x*x) + Math.pow(x*x,1/3)); 
    x -= 0.001; 
    ctx.lineTo(100*x,y); 
    } while ( x >= -1 ); 
    
    do { 
    y = 80*(Math.sqrt(1-x*x) - Math.pow(x*x,1/3)); 
    x += 0.001; 
    ctx.lineTo(100*x,y); 
    } while ( x <= 1 );
    ctx.closePath(); 
    
    var grad = ctx.createRadialGradient(-40,-60,10,-40,-40,200);
    grad.addColorStop(0, "#ffcc00"); 
    grad.addColorStop(1, "#ff0000"); 
    ctx.fillStyle = grad;
    ctx.fill();
    // ctx.stroke(); 
    ctx.restore();
    } 
    window.onload = function (){ 
    draw();
    } 
    </script>
    </body>
    </html>

     

     
    上一篇:使用HTML5捕捉音频与视频信息概述及实例
    下一篇:详解HTML5中的&lt;template;标签
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    HTML5 Canvas实现玫瑰曲线和心形图案的代码实例 HTML5,Canvas,实现,玫瑰,曲线,和,心形,图案,的,