canvas画字帖格子

2023-11-24 04:40
文章标签 canvas 字帖 格子

本文主要是介绍canvas画字帖格子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 曲田格
  • 竖线
  • 横线
  • 十点格

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const Kong = (ctx, sx, sy, w) => {//画矩形ctx.strokeStyle = "red";ctx.lineWidth = 1;ctx.strokeRect(sx, sy, w - 1, w - 1);ctx.save();
};

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const Tian = (ctx, sx, sy, w) => {//画矩形ctx.strokeStyle = "red";ctx.lineWidth = 1;ctx.strokeRect(sx, sy, w - 1, w - 1);ctx.save();//设置虚线样式ctx.lineWidth = 0.5;ctx.beginPath();ctx.setLineDash([2, 2]); //创建2像素长,间隔为2像素的虚线ctx.strokeStyle = "red";let half = w / 2;//定义横线ctx.moveTo(sx - 1, half + sy);ctx.lineTo(w + sx - 1, half + sy);//定义竖线ctx.moveTo(half + sx, sy);ctx.lineTo(half + sx, w + sy);//画定义好的线ctx.stroke();//关闭路径ctx.closePath();ctx.restore();
};

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const Mi = (ctx, sx, sy, w) => {//画矩形ctx.strokeStyle = "red";ctx.lineWidth = 1;ctx.strokeRect(sx, sy, w - 1, w - 1);ctx.save();//设置虚线样式ctx.lineWidth = 0.5;ctx.beginPath();ctx.setLineDash([2, 2]); //创建2像素长,间隔为2像素的虚线ctx.strokeStyle = "red";let half = w / 2;//定义横线ctx.moveTo(sx - 1, half + sy);ctx.lineTo(w + sx - 1, half + sy);//定义竖线ctx.moveTo(half + sx, sy);ctx.lineTo(half + sx, w + sy);//定义交叉线1ctx.moveTo(sx, sy);ctx.lineTo(sx + w, sy + w);//定义交叉线2ctx.moveTo(sx - 1, sy + w);ctx.lineTo(sx + w, sy - 1);//画定义好的线ctx.stroke();//关闭路径ctx.closePath();ctx.restore();
}

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const Jing = (ctx, sx, sy, w) => {//画矩形ctx.strokeStyle = "red";ctx.lineWidth = 1;ctx.strokeRect(sx, sy, w - 1, w - 1);ctx.save();//设置虚线样式ctx.lineWidth = 0.5;ctx.beginPath();ctx.setLineDash([2, 2]); //创建2像素长,间隔为2像素的虚线ctx.strokeStyle = "red";let half = w / 3;//定义横线1ctx.moveTo(sx - 1, half + sy);ctx.lineTo(w + sx - 1, half + sy);//定义横线2ctx.moveTo(sx - 1, half + half + sy);ctx.lineTo(w + sx - 1, half + half + sy);//定义竖线1ctx.moveTo(half + sx, sy);ctx.lineTo(half + sx, w + sy);//定义竖线2ctx.moveTo(half + half + sx, sy);ctx.lineTo(half + half + sx, w + sy);//画定义好的线ctx.stroke();//关闭路径ctx.closePath();ctx.restore();
};

曲田格

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const QuTianGe = (ctx, sx, sy, w) => {//画矩形ctx.strokeStyle = "red";ctx.lineWidth = 1;ctx.strokeRect(sx, sy, w - 1, w - 1);ctx.save();//画圆点let quarter = w / 4; //四分之一ctx.beginPath();ctx.arc(sx + quarter * 3, sy + quarter * 3, 0.5, 0, 2 * Math.PI);ctx.fillStyle = "red";ctx.fill();ctx.stroke();ctx.save();//设置虚线样式ctx.lineWidth = 0.5;ctx.beginPath();ctx.setLineDash([2, 2]); //创建2像素长,间隔为2像素的虚线ctx.strokeStyle = "red";let half = w / 2;//定义横线ctx.moveTo(sx - 1, half + sy);ctx.lineTo(w + sx - 1 - 3, half + sy - 3);//定义竖线ctx.moveTo(half + sx, sy);ctx.lineTo(half + sx, w + sy - 3);//定义里面的上横线ctx.moveTo(sx + quarter - 1, sy + quarter);ctx.lineTo(sx + quarter * 3, sy + quarter - 3);//定义里面的右竖线ctx.moveTo(sx + quarter * 3, sy + quarter - 3);ctx.lineTo(sx + quarter * 3, sy + quarter * 3);//定义里面的下横线ctx.moveTo(sx + quarter * 3, sy + quarter * 3);ctx.lineTo(sx + quarter - 2, sy + quarter * 3 - 2);//定义里面的左竖线的下半部分ctx.moveTo(sx + quarter - 2, sy + quarter * 3 - 2);ctx.lineTo(sx + quarter, sy + quarter * 2);//定义里面的左竖线的上半部分ctx.moveTo(sx + quarter, sy + quarter * 2);ctx.lineTo(sx + quarter - 1, sy + quarter);//画定义好的线ctx.stroke();//关闭路径ctx.closePath();ctx.restore();};

竖线

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const ShuXian = (ctx, sx, sy, w) => {//开始画路径ctx.beginPath();//定义线ctx.lineWidth = 1; //线的宽度ctx.moveTo(sx + w, sy); //起始位置ctx.lineTo(sx + w, sy + w); //结束位置ctx.strokeStyle = "red"; //线的颜色//画定义好的线ctx.stroke();//关闭路径ctx.closePath();ctx.restore();
};

横线

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const HengXian = (ctx, sx, sy, w) => {//开始画路径ctx.beginPath();//定义线ctx.lineWidth = 1; //线的宽度ctx.moveTo(sx, sy + w); //起始位置ctx.lineTo(sx + w, sy + w); //结束位置ctx.strokeStyle = "red"; //线的颜色//画定义好的线ctx.stroke();//关闭路径ctx.closePath();ctx.restore();
};

十点格

在这里插入图片描述

/*** @params ctx canvas绘图上下文* @params sx 横坐标* @params sy 纵坐标* @params w 宽度*/
export const ShiDianGe = (ctx, sx, sy, w) => {//画矩形ctx.strokeStyle = "red";ctx.lineWidth = 1;ctx.strokeRect(sx, sy, w - 1, w - 1);ctx.save();//画圆点let quarter = w / 4; //四分之一ctx.beginPath();ctx.arc(sx + quarter * 3, sy + quarter * 3, 0.5, 0, 2 * Math.PI);ctx.fillStyle = "red";ctx.fill();ctx.stroke();ctx.save();//设置虚线样式ctx.lineWidth = 0.5;ctx.beginPath();ctx.setLineDash([2, 2]); //创建2像素长,间隔为2像素的虚线ctx.strokeStyle = "red";let half = w / 2;//定义横线ctx.moveTo(sx - 1, half + sy);ctx.lineTo(w + sx - 1 - 3, half + sy - 3);//定义竖线ctx.moveTo(half + sx, sy);ctx.lineTo(half + sx, w + sy - 3);//画定义好的线ctx.stroke();//关闭路径ctx.closePath();ctx.restore();
};

这篇关于canvas画字帖格子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/421253

相关文章

影响画布微信小程序canvas及skyline和webview用户界面布局的关键流程

影响微信小程序画布canvas及skyline和webview用户界面布局的关键流程 目录 影响微信小程序画布canvas及skyline和webview用户界面布局的关键流程 一、微信小程序canvas开发流程 1.1、官方指南 1.2、客制化开发 第一步:在 WXML 中添加 canvas 组件 第二步:获取 Canvas 对象和渲染上下文 第三步 画布#ID选择器执行回调——

Android canvas save restore saveLayer的异同点

一、基础操作 drawText、drawRect、drawColor等 对于这些基础操作,相信每一个安卓开发者都能说上个一二点出来,这些就不多做介绍,api 工程师必备技能之一。 在进阶之前,先回答这个问题:    问:canvas既然大家都理解为画布,那如果先在画布上绘制了某些内容,然后再canvas.rotate旋转了画布,为什么这些已经绘制在画布上的内容不会跟随着旋转?    答:由此可

自定义View-Canvas

转载自:https://www.jianshu.com/p/f69873371763 Android Canvas 方法总结 简介 在自定义 View的时候,我们经常需要绘制一些自己想要的效果。 这里就需要使用Canvas对象。 下面将Canvas对象常用方法做个笔记,方便记忆。 对Canvas进行操作 对Canvas的一系列操作,是指对Canvas进行旋转、平移、缩放等操作。 这些操作可以

canvas-实现放大镜效果

canvas-实现放大镜效果 目录 文章目录 前言推荐阅读代码展示结果展示 前言 本文为canvas实现放大镜逻辑简单,适合作为基础项目练手 推荐阅读 《H5 canvas核心技术》 代码展示 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Comp

canvas-原生js实现时钟绘图效果

canvas-原生js实现时钟绘图效果 目录 文章目录 前言代码效果查看 前言 本文为canvas实现时钟效果可直接复制使用 代码 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta n

js-基于AudioContext在canvas上显示声音波形

js-基于AudioContext在canvas上显示声音波形 目录 文章目录 前言效果展示代码展示`index.html``Aud.js` 前言 从ES7后开始启用AudioContex常用API是:createScriptProcessor, onaudioprocess, getChannelData注意:onaudioprocess已经废弃,开始改用Analyse

【Canvas与纹饰】环形小蜜蜂纹饰

【成图】 【代码】 <!DOCTYPE html><html lang="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><head><title>环形小蜜蜂纹饰</title><style type="text/css">.centerlize{margin:0 auto;

Web前端 lucky-canvas【大转盘 九宫格 老虎机】抽奖插件(适用JS/TS、Vue、React、微信小程序、Uniapp和Taro)

Web前端 lucky-canvas 抽奖插件(JS/TS、Vue、React、微信小程序、Uniapp和Taro) 基于 JS + Canvas 实现的【大转盘 & 九宫格 & 老虎机】抽奖,致力于为 WEB 前端提供一个功能强大且专业可靠的营销组件,只需要通过简单配置即可实现自由化定制,帮助你快速的完成产品需求 自由配置 奖品 / 文字 / 图片 / 颜色 / 按钮均可自由配置;支持同步

Canvas加动画,实现火柴人跳绳效果

效果 涉及到的知识 1、canvas 2、path和二阶贝塞尔曲线 3、bitmap绘制 canvas 先引用google官方: The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas t

html5学习canvas实例之时钟

<html><head><title>html5-01</title><meta http-equiv="content-type" content="text/html" charset="utf-8"><script language="javascript">window.οnlοad=function (){var canvas=document.getElementById("canva