canvas绘制七巧板
发布时间 - 2026-01-10 22:50:16 点击率:次效果如下所示:
代码分享:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Canvas七巧板</title>
</head>
<body>
<canvas id="canvas" style=" border: 1px solid #aaa;display:block;margin:50px auto;"></canvas>
<script type="text/javascript">
var tangram = [
{p:[{x:0,y:0},{x:800,y:0},{x:400,y:400}],color:'#caff67'},
{p:[{x:0,y:0},{x:400,y:400},{x:0,y:800}],color:'#67becf'},
{p:[{x:800,y:0},{x:800,y:400},{x:600,y:600},{x:600,y:200}],color:'#ef3d61'},
{p:[{x:600,y:200},{x:600,y:600},{x:400,y:400}],color:'#f9f51a'},
{p:[{x:400,y:400},{x:600,y:600},{x:400,y:800},{x:200,y:600}],color:'#a594c0'},
{p:[{x:200,y:600},{x:400,y:800},{x:0,y:800}],color:'#fa8ecc'},
{p:[{x:800,y:400},{x:800,y:800},{x:400,y:800}],color:'#f6ca29'}
]
// 定义一个存放绘制路径和颜色的数组
window.onload=function (){
var canvas=document.getElementById('canvas');
// 获取canvas
canvas.width = 800;
canvas.height = 800;
// 定义画布的宽高
var context=canvas.getContext('2d');
// 创建画布
for( var i=0; i<tangram.length; i++){
draw(tangram[i],context);
// 遍历数组tangram执行函数draw
}
// draw这个函数
function draw(piece,cxt){
cxt.beginPath();
// 开始路径的创建
cxt.moveTo( piece.p[0].x , piece.p[0].y );
// 从这个坐标开始
for( var i=1; i<piece.p.length; i++)
// 遍历数组中的p属性
cxt.lineTo(piece.p[i].x , piece.p[i].y);
// 画路径到这个坐标
cxt.closePath();
// 关闭这条打开的路径
cxt.fillStyle = piece.color;
cxt.fill();
// 给绘制的形状填充颜色
}
}
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# canvas
# 绘制
# 七巧板
# canvas七巧板
# Canvas实现动态的雪花效果
# canvas实现钟表效果
# canvas实现探照灯效果
# canvas实现图像截取功能
# canvas实现动态小球重叠效果
# canvas实现图像放大镜
# canvas实现粒子时钟效果
# canvas的神奇用法
# js Canvas绘制圆形时钟教程
# canvas实现十二星座星空图
# 遍历
# 这条
# 所示
# 组中
# body
# border
# id
# title
# UTF
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
开心动漫网站制作软件下载,十分开心动画为何停播?
JavaScript如何实现错误处理_try...catch如何捕获异常?
Laravel如何配置Horizon来管理队列?(安装和使用)
python中快速进行多个字符替换的方法小结
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Python并发异常传播_错误处理解析【教程】
5种Android数据存储方式汇总
zabbix利用python脚本发送报警邮件的方法
七夕网站制作视频,七夕大促活动怎么报名?
如何在阿里云完成域名注册与建站?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
java获取注册ip实例
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
如何用PHP工具快速搭建高效网站?
如何在腾讯云服务器上快速搭建个人网站?
如何用西部建站助手快速创建专业网站?
实例解析Array和String方法
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何为不同团队 ID 动态生成多个“认领值班”按钮
Laravel如何处理和验证JSON类型的数据库字段
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
网站制作报价单模板图片,小松挖机官方网站报价?
如何快速搭建安全的FTP站点?
javascript读取文本节点方法小结
JavaScript常见的五种数组去重的方式
如何快速搭建高效WAP手机网站吸引移动用户?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
高端网站建设与定制开发一站式解决方案 中企动力
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
Android okhttputils现在进度显示实例代码
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
潮流网站制作头像软件下载,适合母子的网名有哪些?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
Bootstrap整体框架之JavaScript插件架构
如何快速使用云服务器搭建个人网站?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
三星网站视频制作教程下载,三星w23网页如何全屏?

