角度换算
度 / 弧度 / 梯度 / 圈数四单位实时互转,CSS rotate 与 Canvas 坐标计算的常用小帮手。
>_ 使用指南 · GUIDE
度、弧度、梯度、圈数四套角度单位在前端工作里各有地盘:CSS rotate() 四种都认,Canvas 三角函数只吃弧度,设计制图偶尔遇到梯度(grad)。这个工具把四个输入框联动起来——在任意一格输入,其余三格实时换算,系数关系一目了然:1 圈 = 360° = 400 grad = 2π rad。
典型步骤:
- 直接输入:在任意单位格键入数值,其他三格即时更新
- 抄给 CSS:结果可直接写成
rotate(0.5turn)或rotate(200grad),现代浏览器全部支持 - 抄给 Canvas:
ctx.rotate()、Math.sin()等用 rad 列的值,无需再乘Math.PI / 180 - 浮点噪声已压制:180° → rad → deg 这类往返换算不会出现
180.00000000000003
>_ 常见问题 · FAQ
Q1 · 1 弧度等于多少度?
180/π ≈ 57.2958°。反过来 1° = π/180 ≈ 0.01745 rad。常用锚点:30° = π/6、45° = π/4、60° = π/3、90° = π/2、180° = π、360° = 2π——这几个背下来,读 Canvas 代码就不用来回换算。
Q2 · CSS rotate 应该用哪种单位?
都可以,rotate(45deg)、rotate(0.7854rad)、rotate(50grad)、rotate(0.125turn) 完全等价。可读性建议:小角度用 deg,半圈/整圈用 turn(rotate(0.5turn) 比 180deg 更达意),弧度留给从数学公式直接算出的场景。
Q3 · grad(梯度)是什么单位,哪里还在用?
直角 = 100 grad,整圈 = 400 grad,欧洲大陆的测绘与部分工程制图仍在使用。编程场景遇到它的机会不多,但 CAD 导出的图纸、老测量仪器数据里会出现;工具支持它是为了避免「见到 grad 当成度」的静默错误——两者差 0.9 倍。
Q4 · 为什么 Math.sin(Math.PI / 2) 这类计算不需要换算?
JavaScript 的三角函数一律以弧度为参数。度数参与三角运算前必须先乘 π/180;反过来用 Math.atan2 算出的结果也是弧度,交给 CSS 前要转成 deg。本工具的 rad 列可以直接当代码用。
Q5 · 换算结果后面跟着长串小数正常吗?
正常,π 是无理数,弧度与度之间本来就不存在精确的有限小数互表示。工具在展示层做了 10 位有效截断并压制往返浮点噪声;需要更高精度时以 rad 为基准保存(符号精确),展示时再格式化。