不知不觉一年又要过去了,软件这一行入坑快两年了,一直不知道这两年干了些啥,也不知道自己到底会些什么,工作也是些简单的东西,谁都能做,对未来也是很茫然。今天和同事优化数据库,头都是懵的,很多东西都感觉似曾相识,但就是记不起来,最后只能选择百度。。。。,才发觉该将自己会的东西梳理一下了,今天开始记录自己会的知识,以日记的模式,记在这里,以便日后查看,争取一天一个知识点,贵在坚持,今天开始,构建自己的知识库。

第一天,利用canvas绘制9*9乘法表。

第一次接触canvas是在去年十月份开发一款app时,到现在也已经一年多了,当时因为业务需求手机端的照片上传下载和展示,照片须存储在内网环境,当时将照片利用canvas转化为base64编码,传递后台存入服务器。现在重新梳理下canvas知识,绘制一个乘法表。

首先,先明确需要做什么,先用java控制台输出乘法表。

for(int i=1;i<10;i++) {
for (int j = 1; j < i+1; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}

输出如图所示:

现在开始使用canvas绘制乘法表,工作的时候一直使用jquery,这是个不好的习惯,导致自己的原生js水平一直得不到提升,现在尽量使用原生js。

直接上代码,代码里会详细些注释。

<!--html只有一个canvas标签,定义画布的宽和高-->
<canvas id="canvas" width="600" height="500"></canvas>
//获取canvas标签
var canvas = document.getElementById("canvas");
//获取2d画布,3d的是webgl,目前不会。。。
var ctx = canvas.getContext("2d");
//设置字体大小
ctx.font = "20px 宋体";
//设置字体颜色
ctx.fillStyle = "blue";

//定义绘制一个乘法的对象
function Multiplication(x,y){
this.x = x;
this.y = y;
}

//给对象定义一个绘制的方法
Multiplication.prototype.draw = function(){
//参数依次为:文字内容,如1*1=1、绘制文字的x坐标、绘制文字的y坐标、文字允许的最大宽度
ctx.fillText(this.x+"*"+this.y+"="+this.x*this.y,60*(this.y-1)+10,30*this.x,50);
} for(var i = 1;i < 10;i++){
for(var j = 1;j < i+1;j++){
//获取对象
var drawing = new Multiplication(i,j);
//绘制乘法项
drawing.draw();
}
}

页面如图:

canvas绘制9*9乘法表就结束了,很简单的逻辑,代码也简单,现在将代码放到服务器上去,如有兴趣可点击下方链接看看效果。

canvas绘制9*9乘法表展示链接:http://yktzs.top/canvas/multiplication.html 。

如有错误,欢迎指正QQ:1505771465

  

最新文章

  1. 删除 Windows 旧 OS 加载器
  2. 我常用的crontab命令
  3. oracle执行cmd的实现方法
  4. 基于VC的ACM音频编程接口压缩Wave音频(一)
  5. KIP-32 Add timestamps to Kafka message
  6. C++ ComboBox基础
  7. DoctrineMigrationsBundle
  8. CSS3 background-size图片自适应
  9. Java设计模式(一)工厂模式
  10. JDK源码分析(4)HashSet
  11. C++学习笔记41:进程调度
  12. [development][lockless][dpdk] 无锁队列
  13. Redhat7.4 vim编辑无颜色解决
  14. P2519 [HAOI2011]problem a
  15. (转)SVN服务器搭建和使用(三) 附vs2013 svn插件
  16. Noip前的大抱佛脚----文章索引
  17. Redis集群搭建与使用
  18. Java测试工具使用(1)--Junit
  19. git 从头开始
  20. CodeCraft-19 and Codeforces Round #537 (Div. 2) C. Creative Snap 分治

热门文章

  1. jQuery Gantt Edit:(一)参数以及方法说明
  2. Docker 简单部署 ElasticSearch
  3. #!/usr/bin/python3 和 #!/usr/bin/env python3的区别
  4. 【搬运工】redis 启动和关闭
  5. python实现将base64编码的图片下载到本地
  6. python+selenium测试
  7. spring xml配置注入改为手动注入过程
  8. Go语言学习之12 etcd、contex、kafka消费实例、logagent
  9. 规则引擎 drools
  10. Boxes and Balls UVALive - 7500(练习赛爆零)