关于html5canvas的画时钟问题

问题描述

关于html5canvas的画时钟问题

 <script type="text/javascript">
var canvas,context;
function window_onload(){
    canvas = document.getElementById("myCanvas");
    ctx = canvas.getContext("2d");
    setInterval("draw()",1000);
}
</script>

</head>

<body onLoad="window_onload()">
    <canvas width="800" height="800" id="myCanvas"></canvas>
</body>
</canvas>

<script>
function draw(){

    var radius=250;
    var now=new Date();
    var sec=now.getSeconds();
    var mins=now.getMinutes();
    var hour=now.getHours();

    ctx.save();
    ctx.clearRect(0,0,800,800);
    ctx.translate(400,400);        

    ctx.rotate(-Math.PI/2);
    ctx.stroke();
    ctx.save();
    /*画圆盘*/

    ctx.lineWidth="7";
    ctx.beginPath();
    ctx.arc(0,0,250,2*Math.PI,false);
    ctx.stroke();
    ctx.restore();
    /*画小时刻度*/
    ctx.save();
    ctx.strokeStyle="blue";
    ctx.lineWidth="3";
    ctx.beginPath();
    for(x=0;x<12;x++){
        ctx.rotate(30*Math.PI/180);
        ctx.moveTo(240,0);
        ctx.lineTo(200,0);
    }
    ctx.stroke();
    ctx.restore();

    /*画分钟刻度*/
    ctx.save();
    ctx.strokeStyle="red";
    ctx.beginPath();
    for(x=0;x<60;x++){
        if(x%5!=0){

        ctx.moveTo(240,0);
        ctx.lineTo(220,0);

    }
    ctx.rotate(6*Math.PI/180);
    }
    ctx.stroke();
    ctx.restore();

    /*画秒针*/
    ctx.save();
    ctx.rotate(sec*6*Math.PI/180);
    ctx.strokeStyle="red";

    ctx.beginPath();
    ctx.moveTo(190,0);
    ctx.lineTo(0,0);
    ctx.stroke();
    ctx.restore();

    ctx.save();

    ctx.restore();
    ctx.restore();
}
</script>

以上为代码,为啥钟上会有两个秒针?

解决方案

         function draw() {

            var radius = 250;
            var now = new Date();
            var sec = now.getSeconds();
            var mins = now.getMinutes();
            var hour = now.getHours();

            ctx.save();
            ctx.clearRect(0, 0, 800, 800);
            ctx.translate(400, 400);

            ctx.rotate(-Math.PI / 2);
           // ctx.stroke();////这里多了个stroke,所以多绘制了一条线
            ctx.save();

解决方案二:

是不是还有一个时针,或者你没有擦除?

参考:http://chenjinfei.blog.51cto.com/2965201/770655/

解决方案三:

用HTML5 Canvas画的时钟

效果图
<!doctype?html>?<html>?<head>?<meta?charset="utf-8">?<title>canvas钟表_by?http://www.sitejs......
答案就在这里:用HTML5 Canvas画的时钟

解决方案四:

你的代码不全,
没法分析,请提高全面的代码,

时间: 2024-09-15 12:39:24

关于html5canvas的画时钟问题的相关文章

用html5的canvas画时钟的问题

问题描述 用html5的canvas画时钟的问题 问题1: //初始化画布 context.save(); context.clearRect(00canvas.widthcanvas.height); context.translate(canvas.width/2canvas.height/2); context.scale(0.90.9); context.rotate(-Math.PI/2); context.save(); 初始化的时候加一句 context.rotate(-Math.

javascript-将canvas的画append给body充当背景图,但出现奇怪效果

问题描述 将canvas的画append给body充当背景图,但出现奇怪效果 这是初始的样子,我想要的效果是这颗心不随滚动条滚动 当我拖动滚动条的时候,这颗心跟着移动了,但原位置固定了另一颗心. 继续拖动滚动条, 由此可见,初始页面的心会随着滚动条移动,但同时有另一个心被固定在中间. 我只想要让这个心被固定在中心.不会因为滚动条的移动而出现另一颗心. 我通过JS建立canvas并将画设为背景图,JS代码如下: var canvas = document.createElement('canvas

JavaScript学习小结之使用canvas画“哆啦A梦”时钟_javascript技巧

前言:今天看完了Js书的canvas画布那张,好开心~又是心爱的canvas~欧耶~ 之前看到有人建议我画蓝胖子,对哦,我怎么把童年最喜欢的蓝胖子忘了,为了表达我对蓝胖子的歉意,所以今天画了会动的hello world,也算是一种进步咯~ 好的各位,请上车的乘客往里走,请不要堵塞通道,谢谢.我们开车吧~ 正文: 今天先上图吧,看看效果再说 今天的蓝胖子长这样,看到它还是这么胖,我就放心了.这世界还是充满正能量的,总归还有人比我胖,哈哈哈 然后是上代码 html部分 <canvas id="

Android画个时钟玩玩_Android

先看下最终的效果   开始实现新建一个ClockView集成View public class ClockView extends View { } 先重写onMeasure方法,这里要先说一下View的测量模式,一共有三种:1.EXACTLY 即精确值模式,当我们将控件的layout_width属性或layout_height属性指定为具体数值时,比如android:layout_width="100dp",或者指定为math_parent属性时(占据父View的大小),系统使用的是

本人新手,问下C#如何画出来一个类似时钟的界面

问题描述 任务是做一个指针式时钟,缺少一个图形界面,各位大神帮忙 解决方案 解决方案二:WPF干这个比较好!下面是一个Silverlight例子,可以转换为WPF!解决方案三:用.Net做!!!呵呵...简单!privatevoidForm1_Load(objectsender,EventArgse){this.timer1.Start();}privatevoidtimer1_Tick(objectsender,EventArgse){//窗体重绘this.Refresh();//初始变量in

vs自带的时钟控件不能满足需求,怎么做一个像win7自带日历时钟的控件。

问题描述 vs自带的时钟控件不能满足需求,怎么做一个像win7自带日历时钟的控件. 解决方案 你可以在网上下载一个 解决方案二: 多线程吧,自带的哪个timer感觉运行是用的程序主线程的,我没看手册,HOHO,你要不影响主线程还重新画时钟嘛

js Canvas实现圆形时钟教程_javascript技巧

阅读本文需要一点关于canvas基本用法的基础,本文实例为大家分享了HTML5 Canvas实现圆形时钟简易教程 第一步:新建一个最简单的html文件,并且在<body>标签中定义元素canvas. canvas.html  <html> <head> <title>Canvas clock tutorial</title> </head> <body> <canvas id="clock" wi

html5 canvas做的图表插件

用highchart的时候发现它是用svg来画图的,那么用canvas来做怎么样的. 以前做AS图表插件的时候,绘制图画主要用容器的Graphics对象来绘制,而canvas的context和Graphics一样,都可以用来绘制图形. 然后就试着用canvas做了这样一个东西. 具体实现如下,个人表达能力有问题,各位看官还是看源码吧,如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-T

利用Java Applet编程实现动画特技

编程 绘 制 动 画 十 分 简 单, 只 需 遵 照 以 下 三 步 即 可:(1) 擦 去 整 个 小 程 序 绘 图 区:(2) 重 画 动 画 背 景:(3) 在 新 的 位 置 绘 制 图 形. 但 是, 当 动 画 连 续 帧 之 间 运 动 和 颜 色 不 连 续 时 就 会 发 生 闪 烁 现 象( 例 子 略). 问 题 出 在 小 程 序 区 的 屏 幕 刷 新 上, 有 两 种 方 法 可 以 防 止 动 画 闪 烁. 第 一 种 方 法 是 只 做 局 部 刷 新, 即