这是四个点,下面(横坐标是-2到2)宽一点,上面(横坐标是-1到1)窄一点,填充过后就形成了类似三角形的秒针
原点跟css 一样在左上角因此往右往下为正,往左往上为负
drawHour(4);改为drawHour(4,30);
如果你问的是圆半径-5那块的话是这样的,灰色的块代表圆的宽度,也就是lineWidth,红色代表的是圆本来的一个状态,给他宽设置为10px时,是以圆的边框的中心为基准,向内外各加5px,就成为了10px,表达能力不好 你再理解一下
我知道了,因为下面给了drawHour(4);赋值为4,我懂了
画分针的时候先画了一条指向3点的线,所有以3点为起始值旋转了
Id写错了,注意大小写
js 的第二行 是don而不是dom
js的倒数第四行 是cxt.fill();
1、原代码:var don=document.getElementByID("clock2"); 修改后:var dom = document.getElementById("clock2");
2、原代码:ctxfill();;修改后:cxt.fill();
ctx.restore();
restore写错了
forEach()把函数从头到尾遍历一遍。有三个参数分别是 数组元素 数组元素的索引 数组本身 (如果是一个参数就是数组元素)
http://www.jb51.net/article/69103.htm
画一个梯形,填充
每个ctx.restore()语句一定要加后面的'()', 不然js不能识别它为canvas的方法
试了下应该是这个问题
drawBackground(); drawHour(4); //drawMinute(3); drawHour(1);
一个参数是4 一个参数是1
显示的会一样?
并没有找到帮助文档
时针画法图解
drawHour()这个 方法里边要传两个参数 hour 和 minute ,你少传了一个,js报错了,
function drawHour(hour,minute)
因为你点的顺序弄错了,先是(-2,20)(2,20)接下来是(1,-r+40)而不是(-1,-r+40),如果是(-1,-r+40)就会交叉结果就会显示成中间一条白线
var rad=2*Math.PI/60*minute+2*Math.PI/60/60*second;
不要除以12吧
你这个思路有点问题,先rotate的话在哪个角度画,这个角度在变的;先画的话,已经画了,然而角度没变的,所以12点。只是rotate对已经画了的路径不起作用。跟css3中的写法还是有点差异的。。。
先旋转在画(正确思路);先画在旋转(错误思路);
恩恩,理解了,谢谢
window.onload=function() {
}用这段代码把你的代码包含起来,应该就可以了
我现在用HBuilder 平时用sublime text
因为画布默认的起点实在左上角。使用translate()函数将中心移动到画布中心,参考w3c的canvas手册http://www.w3school.com.cn/tags/canvas_translate.asp
也许是出现在大小写上面,再不然就是表针没有赋予其属性
我用的是AndyJS2,我感觉挺不错,你可以自己上网找一下看看有没有更好的,如果你想尝试可以私信一下我,我可以发你
你的这个思路是可以的,只是这样做,跟老师讲的时针的方向反了,此时你需要把分针和秒针也改成成相应的便可以了