我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何用代码实现HTML5Canvas基础绘图

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何用代码实现HTML5Canvas基础绘图

如何用代码实现HTML5Canvas基础绘图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

基本绘制

XML/HTML Code复制内容到剪贴板

  1. var canvas = document.getElementById('canvas');   
    if (canvas.getContext) {   
        var context = canvas.getContext('2d');   
        // 线宽   
        context.lineWidth = 4;   
        // 画笔颜色   
        context.strokeStyle = 'red';   
        // 填充色   
        context.fillStyle = "red";   
        // 线帽类型   
        context.lineCap = 'butt'; // round, square   
        // 开始路径   
        context.beginPath();   
        // 起点   
        context.moveTo(10,10);   
        // 终点   
        context.lineTo(150,50);   
        // 绘制   
        context.stroke();   
    }

    
矩形

XML/HTML Code复制内容到剪贴板

  1. var canvas = document.getElementById('canvas');   
    if (canvas.getContext) {   
        context.beginPath();   
        context.strokeRect(10,10,70,40);   
        // 矩形的另一种方式   
        context.rect(10,10.70,40);   
        context.stroke();   
            
        // 实心矩形   
        context.beginPath();   
        context.fillRect(10,10,70,40);   
        // 另一种方式实心矩形   
        context.beginPath();   
        context.rect(10,10,70,40);   
        context.fill();   
    }

     
 圆形

XML/HTML Code复制内容到剪贴板

var canvas = document.getElementById('canvas');   
if (canvas.getContext) {   
    context.beginPath();   
    // 圆中心坐标x, 圆中心坐标Y, 圆弧半径, 起始角度,终止角度,是否逆时针   
    // 第4个参数和第五个参数是要传入的弧度,如果画30角度,需要将其转化为弧度 30 * Math.PI / 180   
    context.arc(100,100,70,0,130 * Math.PI / 180, true);   
    context.stroke();   
    context.fill();   
}


圆角

XML/HTML Code复制内容到剪贴板

  1. var canvas = document.getElementById('canvas');   
    if (canvas.getContext) {   
        context.beginPath();   
        context.moveTo(20,20);   
        context.lineTo(70,20);   
           // 为一条路径画弧度p1.x p1.y p2.x, p2.y 弧半径,    
        context.arcTo(120,30,120,70, 50);   
        context.lineTo(120,120);   
        context.stroke();   
            
        // 擦除canvas 画板   
        context.beginPath();   
        context.fillRect(10,10,200,100);   
            
        // 擦除区域   
        context.clearRect(30,30,50,50);   
    }

二次贝塞尔曲线

XML/HTML Code复制内容到剪贴板

  1. var canvas = document.getElementById('canvas');   
    if (canvas.getContext) {   
          context.beginPath();   
          context.moveTo(100,100);   
          context.quadraticCurveTo(20,50,200,20);   
          context.stroke();   
    }

    
三次贝塞尔曲线

XML/HTML Code复制内容到剪贴板

  1. var canvas = document.getElementById('canvas');   
    if (canvas.getContext) {   
         context.moveTo(68,130);   
         var cX1 = 20;   
         var cY1 = 10;   
         var cX2 = 268;   
         var cY2 = 10;   
         var endX = 268;   
         var endY = 170;   
         context.bezierCurveTo(cX1, cY1, cX2, cY2, endX, endY);   
         context.stroke();   
            
        // 利用clip指定绘图区域,指定绘图区域之后,只能在绘图区域中进行绘图擦欧总   
        // 绘制圆形   
        context.arc(100,100,40,0, 360 * Math.PI/ 180 , true);   
        // 限制区域   
        context.clip();   
        // 开始尝试绘制其他   
        context.beginPath();   
        context.fillStyle = 'lightblue';   
        // 结果矩形并没有显示出来   
        context.fillRect(0,0,300,150);   
    }

画板进阶使用

XML/HTML Code复制内容到剪贴板

  1. var canvas = document.getElementById('canvas');   
    if (canvas.getContext) {   
        var context = canvas.getContext('2d');   
           
        var image = document.getElementById('img');   
        context.drawImage(image, 0, 0);   
         var img = new Image();   
         img.class="lazy" data-src = 'images/1.jpg';   
         img.onload = function(){   
                 
             // drawImage    
             // 从 0,0 坐标开始绘制   
             // context.drawImage(img,0,0);   
             // 从0,0 开始,绘制整张图到100,100 长宽   
             // context.drawImage(img, 0, 0, 100, 100);   
             // 截图,50,50 到 100,100 从 260,130 开始绘制,放到 100,100 长宽区域中   
             // context.drawImage(img, 50, 50, 100,100, 260, 130, 100, 100);   
                 
             // 利用getImageData 和 putImageData 绘制图片   
      
             context.drawImage(img, 10, 10);   
             // 从画板上获取像素数据   
             // 开始位置, 结束位置   
             var imgData = context.getImageData(50,50,100,100);   
             // 将数据画到画板指定位置坐标   
             context.putImageData(imgData,10,260);   
             // 将所去的像素数据一部分,画到画板上   
             context.putImageData(imgData,200,260,50,50,100,100);      
                 
             // createImageData 创建像素   
              var imgData = context.getImageData(50,50,200,200);   
              // 创建指定大小的空对象   
              var imgData01 = context.createImageData(imgData);   
                  
              for (i = 0; i < imgData01.width * imgData01.height * 4; i+=4) {   
                  // 红色像素   
                  imgData01.data[i + 0] = 255;   
                  imgData01.data[i+1] = 0;   
                  imgData01.data[i+2] = 0;   
                  imgData01.data[i+3] = 255;   
                      
              }   
              context.putImageData(imgData01, 10, 260);   
         }   
    }

关于如何用代码实现HTML5Canvas基础绘图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何用代码实现HTML5Canvas基础绘图

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于Echarts实现绘制立体柱状图的示例代码

这篇文章主要为大家详细介绍了如何基于Echarts实现绘制立体柱状图的功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
2023-02-23

基于Echarts如何实现绘制立体柱状图

本篇内容主要讲解“基于Echarts如何实现绘制立体柱状图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Echarts如何实现绘制立体柱状图”吧!实现方法先写一个常规的柱状图在这个基础上进行
2023-07-05

UEFI开发基础汇编代码如何使用

这篇文章主要讲解了“UEFI开发基础汇编代码如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“UEFI开发基础汇编代码如何使用”吧!UEFI中使用汇编代码EDK代码中包含一部分汇编代码,
2023-06-30

基于C#如何实现在图片上绘制文字

本篇内容介绍了“基于C#如何实现在图片上绘制文字”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果代码public partial clas
2023-07-04

如何用js代码实现拼图小游戏

这篇文章主要讲解了“如何用js代码实现拼图小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用js代码实现拼图小游戏”吧!一、js拼图是什么?用js做得小游戏二、使用步骤1、先创建di
2023-06-14

Python基础练习之用户登录实现代码分享

python版本为python3.51.要求1)输入用户名密码 2)认证成功后显示欢迎信息 3)输错三次后锁定 2.需求分析1)用户信息存储在文件中(login/config/user_login.txt) 2)用户输入用户名和密码 3)判
2022-06-04

如何利用一行python代码实现灰度图抠图

这篇“如何利用一行python代码实现灰度图抠图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何利用一行python代码实
2023-06-30

如何用Java代码实现图书管理系统

这篇文章主要介绍“如何用Java代码实现图书管理系统”,在日常操作中,相信很多人在如何用Java代码实现图书管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Java代码实现图书管理系统”的疑惑有所
2023-06-29

如何使用PHP代码实现QQ代码

要使用PHP代码实现QQ代码,你可以使用QQ互联开放平台提供的SDK来完成。以下是一个简单的示例代码:首先,你需要从QQ互联开放平台获取到应用的App ID和App Key。然后,你可以使用这些凭据初始化SDK。```phprequire
2023-08-28

如何用C++代码实现ControlTemplate

这期内容当中小编将会给大家带来有关如何用C++代码实现ControlTemplate,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。现在主流的开发语言就是C++语言了,但是不过感觉没有C语言实现的那么灵活,
2023-06-17

Java NIO原理图文分析及如何用代码实现

本篇文章为大家展示了Java NIO原理图文分析及如何用代码实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言:最近在分析hadoop的RPC(Remote Procedure Call Pro
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录