作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
画一条越粗越粗到最后的线最简单的方法是什么?像这样:
这是一个时钟项目,所以我希望线 x 和 y 点不是恒定的,我的意思是线应该使用正弦和余弦围绕一个点旋转,没有 ctx.rotate 只有数学。
简单地说,我怎样才能让线也绕着黑点旋转?
最佳答案
对于原点在左上角的 HTML5 Canvas ,从垂直方向顺时针旋转点的一般公式是:
var x = cx + r * Math.sin(theta);
var y = cy - r * Math.cos(theta);
[cx, cy]
是时钟的中心点,theta
以弧度为单位。
对于您的时钟 handle ,只需使用这些公式三(或四)次,具体取决于您希望 handle 以点(即三 Angular 形)还是直线(即平行四边形)结束。
根据所需时间计算theta
,然后针对每个点调整它(并选择合适的r
)以获得所需的形状。
关于javascript - HTML5 Canvas - 绘制一条越来越粗到最后的线的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17017710/
我是一名优秀的程序员,十分优秀!