在一个时钟中以五分钟为间隔绘制指示器
Draw indicators in five minutes interval in a clock
我正在学习画布,我正在努力画一个时钟。。
现在,我有这个:
var canvas = document.createElement("canvas");
canvas.width = 100;
canvas.height = 100;
document.body.appendChild(canvas);
if (!canvas.getContext) {
console.log("Good morning! .. Please check your canvas");
}
else {
var ctx = canvas.getContext("2d");
var path = new Path2D();
// outer border
path.moveTo(100,50);
path.arc(50,50,50,0,Math.PI*2,true);
// inner border
path.moveTo(97,50);
path.arc(50,50,47,0,Math.PI*2,true);
// indicators: fifteen in fifteen minutes
path.lineTo(90,50);
path.moveTo(3,50);
path.lineTo(10,50);
path.moveTo(50,3);
path.lineTo(50,10);
path.moveTo(50,97);
path.lineTo(50,90);
// show canvas
ctx.stroke(path);
}
正如你所看到的,我一个接一个地画出了指标(间隔15分钟)。
我想以五分钟的间隔画它。。
循环/数学有什么适合这样做的吗?
谢谢你抽出时间。
编辑:只是为了分享结果。
您需要一些三角函数和for循环。
你可能知道,圆被定义为所有的点,比如p(cos(x),sin(x))。在这种情况下,sin和cos函数中的x值必须计算如下:
x=50+50*Math.cos((i/numticks)*2*Math.PI)
那么这一切意味着什么呢?
- 第一个50将圆移动到画布的中心
- (i/numticks)将刻度数缩放到0到1的范围
然后我们将所有这些乘以2*Pi,这就给出了sin和cos的论点。
var numticks=12
for(var i = 0;i <= numticks;i++) {
path.moveTo(50+50*Math.cos((i/numticks)*2*Math.PI),50+50*Math.sin((i/numticks)*2*Math.PI));
path.lineTo(50+45*Math.cos((i/numticks)*2*Math.PI),50+45*Math.sin((i/numticks)*2*Math.PI));
}
相关文章:
- 手动创建旋转活动指示器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 如何在不活动5分钟后更改页面位置
- 每小时倒计时一次,但以30分钟为单位
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- 角度在60多分钟内路线问题
- 如何计算一个对象中五个属性中有多少是非null的
- 计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- Jquery.pwsstrength密码强度指示器规则不起作用
- 如何在javascript中将秒转换为分钟和小时
- 如何使用javascript将秒转换为分钟.
- 如何将分钟格式化为小时和分钟,但仅显示小时(如果's>60分钟
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 引导时间选择器在增加或减少小时和分钟的同时获取 NaN
- 如何触发Bootstrap Carousel's转盘指示器
- 检测五分钟标记
- ASP.Net 每五分钟弹出一次网络表单提醒
- 如何使用javascript每五分钟显示一条消息
- 在一个时钟中以五分钟为间隔绘制指示器