学习Canvas可以通过一些例子来增加成就感

一下是一个输出一个象棋棋盘的例子

象棋棋盘

//以要画的点为原点定义四个象限

var pointDefine=[[-1,-1],[1,-1],[-1,1],[1,1]];

//要绘制标记方位 全部

var allP =[0,1,2,3];

//要绘制标记方位 左侧

var leftP =[1,3];

//要绘制标记方位 右侧

var rightP =[0,2];

var cl = 70;

/**

* 炮和兵位置信息

* 每一组位置信息为,横向位置,纵向位置,纵向位置上与之相对应的点的距离,要绘制标记方位(左侧还是右侧还是全部)

*/

var points=[

[0,3,3,leftP],

[8,3,3,rightP],

[2,3,3,allP],

[4,3,3,allP],

[6,3,3,allP],

[1,2,5,allP],

[7,2,5,allP]

];

var pointPlace = function (ctx,x,y,pointInfo){

var l = 10;

var space = 3;

for ( var i = 0; i

var xinfo = pointDefine[pointInfo[i]][0];

var yinfo = pointDefine[pointInfo[i]][1];

ctx.moveTo(x+xinfo*space,y+yinfo*l);

ctx.lineTo(x+xinfo*space,y+yinfo*space);

ctx.lineTo(x+xinfo*l,y+yinfo*space);

}

}

var drawX = function (ctx,x,y){

ctx.moveTo((x-1)*cl,(y-1)*cl);

ctx.lineTo((x+1)*cl,(y+1)*cl);

ctx.moveTo((x+1)*cl,(y-1)*cl);

ctx.lineTo((x-1)*cl,(y+1)*cl);

}

var drawProitPare = function (ctx,x,y,cl){

pointPlace(ctx,x,y,allP);

pointPlace(ctx,x,y +cl*5,allP);

}

var drawProitPare = function (ctx,x,y,yplus,cl,pointP){

pointPlace(ctx,cl*x,cl*y,pointP);

pointPlace(ctx,cl*x,cl*y +cl*yplus,pointP);

}

/**

* 画象棋棋盘

*/

var drawTable = function(ctx){

for(var clo = 0;clo<8 ;clo++){

for(var ln = 0;ln<9 ;ln++){

if(ln!=4){

ctx.strokeRect(clo*cl,ln*cl,cl,cl);

}else{

ctx.strokeRect(0,ln*cl,cl*8,cl);

}

}

ctx.strokeRect(0,0,560,620);

}

}

var canvas1 = document.getElementById("canvas1");

var ctx = canvas1.getContext("2d");

//设置线宽 线的颜色

ctx.lineWidth = 1;

ctx.strokeStyle = "dodgerblue";

drawTable(ctx);

var ctx2 = canvas1.getContext("2d");

drawX(ctx2,4,1);

drawX(ctx2,4,8);

for(var i = 0; i

drawProitPare(ctx2,points[i][0],points[i][1],points[i][2],cl,points[i][3]);

}

ctx2.strokeStyle = "dodgerblue";

ctx2.font='bolder 48px 隶书';

ctx2.rotate(90 * Math.PI/180)

ctx2.strokeText("汉",cl*4+10,-485);

ctx2.strokeText("界",cl*4+10,-435);

ctx2.rotate(-180 * Math.PI/180)

ctx2.strokeText("楚",-(cl*5-10),70);

ctx2.strokeText("河",-(cl*5-10),120);

ctx2.stroke();

html画布创建黑白象棋棋盘,Canvas绘制象棋棋盘相关推荐

  1. 使用canvas 绘制象棋棋盘

    先看效果图吧 O(∩_∩)O哈哈~ 代码在这里 <!dOCTYPE html> <html><head><meta charset="utf-8&q ...

  2. Canvas绘制五子棋棋盘

    一.前台HTML中添加canvas(将width与height写入html中,放入css文件中显示的样式不一致) <canvas id="mycanvas" class=&q ...

  3. java绘制棋盘_java绘制五子棋棋盘

    本文实例为大家分享了java绘制五子棋棋盘的具体代码,供大家参考,具体内容如下 源码: import javax.imageio.ImageIO; import javax.swing.*; impo ...

  4. java五子棋棋盘_java绘制五子棋棋盘代码示例

    本篇文章小编给大家分享一下java绘制五子棋棋盘代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下: import javax.imag ...

  5. html画布创建黑白象棋棋盘,HTML5学习与加固——canvas绘图象棋盘

    1 2 3 4 5 6 canvas绘图_象棋盘 7 8 9 10 不支持Canvas 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 varob ...

  6. python绘制8×8棋盘_python绘制跳棋棋盘

    毕设题目是用python做跳棋游戏,可怜我只找到了用python做的五子棋和用java做的跳棋,两边结合写出了python棋盘. (小声叨叨:老师明明说网上可以找到-) 话不多说,上代码. #数据定义 ...

  7. PHP绘制99的棋盘,JS canvas绘制五子棋的棋盘

    本文为大家分享了JS canvas绘制五子棋棋盘的具体代码,供大家参考,具体内容如下 box-shadow:给元素块周边添加阴影效果. 语法:box-shadow: h-shadow v-shadow ...

  8. 使用双重循环实现五子棋游戏棋盘的绘制

    使用双重循环实现五子棋游戏棋盘的绘制 使用双重循环实现五子棋游戏棋盘的绘制,棋盘界面的具体效果如下: public class Demo103 {public static void main(Str ...

  9. html5时间画布走动,javascript+HTML5 canvas绘制时钟功能示例

    本文实例讲述了javascript+HTML5 canvas绘制时钟功能.分享给大家供大家参考,具体如下: 效果如下: 代码: www.jb51.net canvas绘制时钟 div{text-ali ...

最新文章

  1. pythonos是啥_Pythonos模块介绍
  2. windbg+VM 设置内核调试环境(双机调试)
  3. js 根据所输内容生成助记码
  4. python123第九周测验答案2020_运用python123平台助力编程课教学
  5. GO tcp server demo
  6. linux下 USB动态监测 hotplug事件监测
  7. jar包在windows后台运行,通过.bat文件
  8. Spring Boot学习笔记(二)——HelloWorld实现
  9. spring api 中文_【每日3分钟技术干货 | 面试题+答案 | Springamp;SpringMVC篇
  10. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...
  11. 端口镜像在网络安全中的应用
  12. 极化码理论及算法研究3-Arikan原版论文学习总结
  13. 梨花带雨html音乐播放器源码,梨花带雨 - 雨陌文化传媒 - 5SING中国原创音乐基地...
  14. 软件工程的完整生命周期
  15. python+opencv代码给证件照换底色
  16. 【Flex】“安装的AdobeFlashPlayer不是调试器”解决办法之详解
  17. python提取某一列数据,Python numpy 提取矩阵的某一行或某一列的实例
  18. RecyclerView侧滑删除
  19. MYSQL中,in、limt、升降序、count的用法
  20. iOS 越狱开发那些事儿之二

热门文章

  1. 《一斛珠·元夜月蚀》
  2. 自定义 View 之联系人字母索引及定位效果
  3. 【iOS-iap防护】验证用户付费收据!拒绝iap Cracker!拒绝iap Free!让iphone越狱用户无从下手!【2012年5月2日更新防护iap Free的方法】
  4. 石康,你别再让我越来越厌恶了,行不行
  5. 孝庄太后如何培养康熙的综合素质
  6. 学生喂养动物(猫,狗,鸟)
  7. Activity到底是什么时候显示到屏幕上的呢?
  8. /usr/include/linux/if_ppp.h:117: error: expected specifier-qualifier-list before 'aligned_u64' 解决方式
  9. word出现错误报告的解决办法
  10. python括号是中文还是英文_Python括号约定