双端 Diff 算法原理解析及 snabbdom 简单实现

本文详细介绍了使用Canvas绘制猪头的各个部分,包括吹风机头、五官等,并通过JavaScript实现。同时,提到了前端库Snabbdom的简单应用,帮助读者深入理解DOM操作。
摘要由CSDN通过智能技术生成

一、准备工作

  • 先找个放猪的容器canvas,这里宽设置了1200,高设置了600
 <canvas width="1200" height="600" id="canvas">当前浏览器不支持canvas元素</canvas> 
  • 然后获取它进行操作
const canvas = document.getElementById('canvas');
if(canvas.getContext) {
 // 获取绘图上下文
 var ctx = canvas.getContext('2d');
 //然后就可以咔咔咔咔进行操作了
} 
  • 这里我顺便还设置了一下样式
 ctx.fillStyle = 'pink'; //填充的颜色为粉红色
 ctx.strokeStyle = "#f95a75"; //描线的颜色
 ctx.lineWidth = 4; //描线的厚度 

前面会详细一点,后面就阿巴阿巴了

二、吹风机头

  • 这个我一直不知道要怎么处理比较好,最后调啊调啊,采用两个半圆加上一个椭圆完成
  • 下面先绘制一个半圆* 每一次绘画前都要用ctx.beginPath()开启绘画,防止跟前面的藕断丝连* 画圆的操作:ctx.arc(x,y,radius,startAngle,endAngle,anticlockwise)* x,y为圆的圆心坐标* radius为半径* startAngle,endAngle 分别为圆弧或圆的开始位置,结束位置* anticlockwise是绘画方向,默认false为顺时针方向
 ctx.beginPath();
 ctx.arc(300, 200, 80, 0, Math.PI, false);
 ctx.fill(); 
  • 右上角也是一个半圆,一样的操作
 ctx.beginPath();
 ctx.arc(310, 200, 70, 0 , Math.PI,true);
 ctx.fill(); 
  • 左上角为一个椭圆* 椭圆操作:ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)* x,y为椭圆圆心坐标* radiusx为椭圆的在x轴和y轴的半径* rotation:椭圆自身旋转的方向* startAngle,endAngle 分别为圆弧的开始位置,结束位置* anticlockwise是绘画方向,默认false为顺时针方向

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值