• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 分享HTML5 Canvas画印章效果实例代码

分享HTML5 Canvas画印章效果实例代码

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5, Canvas等相关知识,匿名希望在学习及工作中可以帮助到您

下面分享一个用HTML5 Canvas画印章效果实例代码,可以看一下

<!DOCTYPE html>
<html>
<head>
 <meta charset="gbk">
 <title>HTML5 Canvas画印章</title>
</head>
<body>
    <canvas id="canvas" width="200" height="200"></canvas>
<script>
   var canvas = document.getElementById("canvas");  
   var context = canvas.getContext('2d');
   var text = "XXX专用章";
   var companyName = "浙江网络科技股份有限公司";
  
  // 绘制印章边框   
   var width = canvas.width / 2;
   var height = canvas.height / 2;
   context.lineWidth = 5;
   context.strokeStyle = "#f00";
   context.beginPath();
   context.arc(width, height, 90, 0, Math.PI * 2);//宽、高、半径
   context.stroke();

   //画五角星
   create5star(context,width,height,25,"#f00",0);

    // 绘制印章名称   
    context.font = '20px 宋体';
    context.textBaseline = 'middle';//设置文本的垂直对齐方式
    context.textAlign = 'center'; //设置文本的水平对对齐方式
    context.lineWidth=1;
    context.strokeStyle = '#f00';
    context.strokeText(text,width,height+60);

    // 绘制印章单位   
    context.translate(width,height);// 平移到此位置,
    context.font = '23px 宋体'
    var  count = companyName.length;// 字数
    var  angle = 4*Math.PI/(3*(count - 1));// 字间角度   
    var chars = companyName.split("");
    var c;
   for (var i = 0; i < count; i++) {
       c = chars[i];// 需要绘制的字符   
       if (i == 0) {
           context.rotate(5 * Math.PI / 6);
       } else{
           context.rotate(angle);
       }
       context.save();
       context.translate(70, 0);// 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
       context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴
       context.strokeText(c, 0, 0);// 此点为字的中心点
       context.restore();
   }
   //绘制五角星  
    /** 
     * 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,rotate=0时一个顶点在对称轴上 
     * rotate:绕对称轴旋转rotate弧度 
     */
    function create5star(context, sx, sy, radius, color, rotato) {
        context.save();
        context.fillStyle = color;
        context.translate(sx, sy);//移动坐标原点
        context.rotate(Math.PI + rotato);//旋转
        context.beginPath();//创建路径
        var x = Math.sin(0);
        var y = Math.cos(0);
        var dig = Math.PI / 5 * 4;
        for (var i = 0; i < 5; i++) {//画五角星的五条边
            var x = Math.sin(i * dig);
            var y = Math.cos(i * dig);
            context.lineTo(x * radius, y * radius);
        }
        context.closePath();
        context.stroke();
        context.fill();
        context.restore();
    }
</script>
<!DOCTYPE html>
<html>
<head>
 <meta charset="gbk">
 <title>HTML5 Canvas画印章</title>
</head>
<body>
    <canvas id="canvas" width="200" height="200"></canvas>


<script>
   var canvas = document.getElementById("canvas");  
   var context = canvas.getContext('2d');
   var text = "XXX专用章";
   var companyName = "浙江网络科技股份有限公司";
  
  // 绘制印章边框   
   var width = canvas.width / 2;
   var height = canvas.height / 2;
   context.lineWidth = 5;
   context.strokeStyle = "#f00";
   context.beginPath();
   context.arc(width, height, 90, 0, Math.PI * 2);//宽、高、半径
   context.stroke();

   //画五角星
   create5star(context,width,height,25,"#f00",0);

    // 绘制印章名称   
    context.font = '20px 宋体';
    context.textBaseline = 'middle';//设置文本的垂直对齐方式
    context.textAlign = 'center'; //设置文本的水平对对齐方式
    context.lineWidth=1;
    context.strokeStyle = '#f00';
    context.strokeText(text,width,height+60);

    // 绘制印章单位   
    context.translate(width,height);// 平移到此位置,
    context.font = '23px 宋体'
    var  count = companyName.length;// 字数
    var  angle = 4*Math.PI/(3*(count - 1));// 字间角度   
    var chars = companyName.split("");
    var c;
   for (var i = 0; i < count; i++) {
       c = chars[i];// 需要绘制的字符   
       if (i == 0) {
           context.rotate(5 * Math.PI / 6);
       } else{
           context.rotate(angle);
       }
       context.save();
       context.translate(70, 0);// 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
       context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴
       context.strokeText(c, 0, 0);// 此点为字的中心点
       context.restore();
   }

   //绘制五角星  
    /** 
     * 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,rotate=0时一个顶点在对称轴上 
     * rotate:绕对称轴旋转rotate弧度 
     */
    function create5star(context, sx, sy, radius, color, rotato) {
        context.save();
        context.fillStyle = color;
        context.translate(sx, sy);//移动坐标原点
        context.rotate(Math.PI + rotato);//旋转
        context.beginPath();//创建路径
        var x = Math.sin(0);
        var y = Math.cos(0);
        var dig = Math.PI / 5 * 4;
        for (var i = 0; i < 5; i++) {//画五角星的五条边
            var x = Math.sin(i * dig);
            var y = Math.cos(i * dig);
            context.lineTo(x * radius, y * radius);
        }
        context.closePath();
        context.stroke();
        context.fill();
        context.restore();
    }
</script>

以上就是分享HTML5 Canvas画印章效果实例代码的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03HTML5新增的结构元素有哪些?HTML5新增的结构元素的用法(推荐)
  • 2018-12-03教你如何实现一个H5微场景
  • 2017-08-06html5指南-1.html5全局属性(html5 global attributes)深入理解
  • 2018-12-03HTML5 CANVAS:绘制路径
  • 2018-12-03如果html传输全部使用json, browser 将会快很多?
  • 2018-12-03深入解析HTML5 内联框架--iFrame
  • 2018-12-03html5+CSS如何控制Table内外边框和颜色以及大小的图文教程
  • 2018-12-03使用html实现简单的柱状图效果
  • 2018-12-03canvas如何实现github404动态
  • 2018-12-03HTML5-WebSocket实现对服务器CPU实时监控

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 纯js和CSS3炫酷自动幻灯片特效
    • html5 实现如何将两个矩形相互叠加
    • HTML 5 应用的用户体验能达到本地应用那么好吗?
    • JsChart的组件使用详解
    • HTML5 canvas画布详解(二)
    • HTML5使用DOM进行自定义控制示例代码_html5教程技巧
    • html5的新特性有哪些?html5新特性的总结
    • 整理HTML5移动端开发的常用触摸事件_html5教程技巧
    • html5 worker 实例(一) 为什么测试不到效果_html5教程技巧
    • HTML5 Canvas实现文本对齐的方法总结_html5教程技巧

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有