html5-用<canvas>做钟表的问题

问题描述

用<canvas>做钟表的问题

<!doctype html>

canvas实例1-时钟

您的浏览器不支持canvas标签

var clock = document.getElementById('clock');
var cxt = clock.getContext('2d');

// 表盘(蓝色)

cxt.beginPath();
cxt.lineWidth = 10;
cxt.strokeStyle= "blue";
cxt.arc(250,250,200,0,360,false);
cxt.stroke();
cxt.closePath();
// 刻度

// 时刻度开始
for(var i=0; i<12; i++) {
cxt.save();
cxt.lineWidth = 7;
cxt.strokeStyle = "#000";
cxt.translate(250,250);
cxt.rotate(i*30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,-190);
cxt.stroke();
cxt.closePath();
cxt.restore();
}
// 时刻度结束

// 分刻度开始
for(var i=0; i<60; i++) {
cxt.save();
cxt.lineWidth = 5;
cxt.strokeStyle = "#000";
cxt.translate(250,250);
cxt.rotate(i*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-180);
cxt.lineTo(0,-190);
cxt.stroke();
cxt.closePath();
cxt.restore();
}
// 分刻度结束

// 时针开始

cxt.save();
cxt.beginPath();
cxt.lineWidth = 7;
cxt.strokeStyle = "#000";
cxt.translate(250,250);
cxt.rotate(90*Math.PI/180);
cxt.moveTo(0,-140);
cxt.lineTo(0,10);
cxt.stroke();
cxt.closePath();
cxt.restor();

// 时针结束

// 分针开始

cxt.save();
cxt.beginPath();
cxt.lineWidth = 5;
cxt.strokeStyle = "#000";
cxt.translate(250,250);
cxt.rotate(180*Math.PI/180);
cxt.moveTo(0,-160);
cxt.lineTo(0,15);
cxt.stroke();
cxt.closePath();
cxt.restor();

// 分针结束

请各位老师帮忙看看,分针是复制时针的代码后进行了修改,为什么分针做不出来,请老师指教!非常感谢!

解决方案

cxt.restor();应为cxt.restore();

解决方案二:

cxt.restor();应为cxt.testore();

解决方案三:

你的思路错了,你让画布旋转,画出了时钟,但是再话分钟就穿帮了。你应该算出角度,然后画线实现。

时间: 2025-01-30 08:59:25

html5-用&amp;lt;canvas&amp;gt;做钟表的问题的相关文章

js+html5绘制图片到canvas的方法

  本文实例讲述了js+html5绘制图片到canvas的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px soli

js+html5绘制图片到canvas的方法_javascript技巧

本文实例讲述了js+html5绘制图片到canvas的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"> Your browser does not suppor

html5中怎么在canvas中画一个二叉树?

问题描述 html5中怎么在canvas中画一个二叉树? 是否用到递归??????? 具体怎么实现??????? 谢谢 解决方案 用递归就可以画出来 解决方案二: HTML5 canvas画的摇摆的树HTML5开发Canvas递归画树HTML5之Canvas画正方形

基于Html5的Canvas实现的Clocks (钟表)

Canvas是Html5中非常重要的Feature 之一,究竟Canvas的未来会怎么样? 各大巨头有着不同的想法,微软的IE9会全面支持Canvas, Safari Chrome FireFox Opera 都已经支持了Canvas, 这些都是对Canvas利好的消息,这说明Canvas 将会在主流的浏览器上得到全面的支持.不过不全是对Canvas利好的消息,Adobe 微软 都有自己成熟的替代技术,Adobe Flash 已经发展了这么多年,拥有广大的用户群,同时Flash的浏览器插件也几乎

用Canvas做视频拼图

几天前同事给我看了一个特效,是一个拼图游戏,不同的是,拼图里的是动画.他让我看下做个DEMO,于是就自己整了一会,也确实不难.用canvas很容易做.所以这篇博文不适合高手看....就是随便写来玩玩的. 效果图:...至少我刚看到这个的时候觉得挺新颖的,所以才会想到做出来玩玩,觉得楼主out的哥们请轻喷 不多说,先上DEMO:视频拼图  (或许要等一会才能看到效果,我是直接在w3school那里搞了个视频链接过来的,拖动什么的都做的很简单,或许还有些bug,毕竟就只是做一个 DEMO玩玩而已,说

HTML5基础,第4部分:点睛之笔Canvas

(译者注:由于yeeyan编辑器对文章中的标签做解析的原因,我在每个标签的<符号之后都加入了一个空格,比如说,左尖括号<+head+右尖括号>,我会写成< head>,以便其能够在文章中正确显示,不便之处敬请谅解.) 使用HTML5来编写代码的人,有着设计者和开发者双重身份的强悍组合,其职责是构造出高效的富互联网应用(rich Internet application,RIA),特别是丰富的用户界面.就高效这个字眼来说,我的意思是指系统级的和系统性的创造力增强,这种增强以数字

《HTML5 canvas开发详解(第2版)》——1.6 HTML5 Canvas版“Hello World!”

1.6 HTML5 Canvas版"Hello World!" 如前所述,将Canvas放入HTML5页面时第一件要做的事就是,看看整个页面是否已经加载,并且开始操作前是否所有HTML元素都已展现.在用Canvas处理图像和声音的时候,这点会非常重要. 为此,这里要使用JavaScript的事件.当定义的事件发生时,事件从对象发出.其他对象监听事件,这样就可以基于事件进行处理.用JavaScript可以监听对象的一些常见事件,包括键盘输入.鼠标移动以及加载结束. 第一个需要监听的事件是

使用 HTML5 canvas 进行 Web 绘图

使用 HTML5 canvas 进行 Web 绘图 新的 HTML5 规范旨在帮助开发人员更轻松的编写出各类 Web 应用,以顺应当前 SaaS,云计算以及 RIA 等技术的最新趋势.在 HTML5 得以广泛推广之前,开发人员通常使用 SVG,VML 等技术进行 Web 绘图操作,但这些基于 XML 的绘图语言声明式的绘图方式并不能满足复杂绘图操作在性能上的需求,比如 Web 游戏所需要的像素级别的绘图能力.HTML5 canvas 元素的出现填补了这种不足,开发人员可以使用 JavaScrip

玩转html5&amp;lt;canvas&amp;gt;画图

玩转html5<canvas>画图 导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制图像(图片平铺.裁剪.像素处理[不只图像.包括其他绘制图形]) 绘制文字 保存和恢复状态(context) 保存文件 结合setInterval制作动画 结语.demo下载   前言      <canvas></canvas>是html