- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我在绘制图表时遇到问题。情况是还剩多少天,我需要绘制和弧线
var eAngle = tax * 0.0172;
var c = document.getElementById("tax");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(100,100,70,1.5 , Math.PI * eAngle, true);
ctx.stroke();
另外我怎样才能在圆弧中间写一些文字。
最佳答案
我对代码做了一些调整。首先,我们需要知道一年中每一天的 Angular 。我想说的是,这将是一个完整的圆 (Math.PI * 2
) 除以 365(如果是其中一年,则为 366)。那么就是正确理解arc函数的问题了:
arc(x, y, radius, angle (0 = x-axis to the right), end angle (starting x-axis where 1 radian is a full circle), counterclockwise (true is counterclockwise drawing from start until the end angle, and false or ommitting is the regular clockwise angle);
最后,这会起作用:
context.arc(100, 100, 50, -Math.PI / 2, -Math.PI / 2 + day * (Math.PI * 2 / 365), false);
参数依次为:x 位置、y 位置、半径、-90 度(从 y 轴而不是 x 轴开始),无论您输入一天加上偏移量时输出什么前面的论点。
要在此之上绘制文本,您只需使用 canvas fillText
函数即可。
var dayArc = Math.PI * 2 / 365;
var dayN = 0;
var offset = -Math.PI / 2;
var canvas = document.getElementById("tax")
var context = canvas.getContext('2d');
setInterval(function(){
dayN = dayN > 364 ? 0 : dayN+1;
canvas.width = 500;
context.beginPath();
context.arc(100, 100, 50, offset, offset + dayN * dayArc, false);
context.stroke();
context.textAlign = 'center';
context.font = "24px 'Helvetica Neue', sans-serif";
context.fillText((365-dayN) + '/365', 100, 110);
}, 1000 / 60);
<canvas id="tax" widht="500" height="500"></canvas>
关于Javascript Canvas 弧线不是根据 Angular 绘制的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33016348/
我正在用 Canvas 绘制一个非传统的响钟。时间由秒环、秒针、分钟环和小时环表示。我正在使用 webkit/mozRequestAnimationFrame 在适当的时间绘制。我想修改第二个环以快速
问题:我在 Canvas 上画一艘宇宙飞船。将鼠标悬停在其 x/y 上时,我在 Canvas 上绘制一条弧线,指示星舰武器 Angular 和范围(考虑星舰当前的巴林/朝向)。目前确定的 Angula
我正在使用 css 制作一个“饼形楔形”,方法是制作一个圆圈,将其剪掉一半,然后变换旋转另一个剪裁矩形,以便仅显示 25 度的弧形。这很好用;一个明确定义了六个这样的饼图的例子是 here . 然而,
我正在尝试研究 Page 65 of LDD3 中提到的 __copy_to_user() 和 __copy_from_user() 内联函数. 我可以看到 __copy_to_user() func
我是一名优秀的程序员,十分优秀!