马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?点击注册
x
本帖最后由 会哭的梧桐树 于 2014-2-3 13:53 编辑
Rainmeter中的两种meter使用一个叫做Radians(弧度)的统计单位来计算其在一个圆的周长上的位置。这是一个被数学家们、科学家们,还有程序员们在处理圆形事物时所普遍使用的单位。本指南将会尽最大的可能让你更轻松地明白如何在Rainmeter上下文中使用弧度。
这两个在它们的选项中使用弧度的meter是Roundline和Rotator. Roundline能够根据一些measure值来绘制一条围绕一个中心点旋转的线段。Rotator的功能差不多,所不同的是它绘制的对象是你提供的图像而不是简单的画一条线。它们都是用StartAngle来控制在圆上的起始绘制点,以及RotationAngle作为围绕该圆的总绘制长度(以百分比的形式表示)。以这种方式,你可以用它来显示任何可以返回百分数的measure的值。
那么什么是弧度呢?
不需要深入的在数学角度上钻研,为了避免过深的在数学角度上钻牛角尖,(已经有大量的网站比如维基百科(Wikipedia)可以在细节上让你的大脑融化(这句翻译的有点生疏,你们意会一下,大致的意思是让你抓狂什么的),弧度可以在度数上表示圆周上的距离。默认的起始点是位于圆心正右方的点,它的值是0°或者360°。这可能是你最需要牢记在脑中的,起始点在圆心的正右方位置。弧度在指南针上的角度计算没有任何作用,因为指南针通常显示0°度(或北)指向正上方。
简而言之,弧度是在圆上定义一个点的一种方式,从0°(圆心的正右方)开始计算其在圆周上的距离直到你在你想要的(圆周上的)位置点停下。
在圆上计算任何点的弧度的方法相当简单。它将使用数学常量π(圆周率)并且π在不同大小的圆中做这些计算时拥有独立性优势(指的是结果互不干扰)。
你可能很难在脑海中想象圆周上的距离是什么一个概念。它们是用很多小数所表示的精确数,并且任何情况下你都需要π的比例数来表示这个数,而且……让我们就此打住。然而你可以使用角度来准确表示它。一个圆有360°,我们都可以使用并且指出45°,90°,180°和270°所表示的大小。我们所需要做的全部事情便是记住圆的0°的位置是从圆心指向正右方的那个点,然后增加一些角度就可以达到我们期望的点。
举个例子,如果我们需要定义圆正上方的点的位置,我们可以很容易发现它是圆从0°开始顺时针转270°的位置。那么我们需要做的是用弧度数来定义这个270°大小的位置。这些可以用一个简单的公式做到:
角度转化成弧度:(度数*(π÷180))……(degrees*(PI/180))
你也可以用下面的公式来进行逆运算:
弧度转化成角度:(弧度*(180÷π)) ……(radians*(180/PI))
更好的消息是,这里有一个弧度和角度的常用转化速查表。当Rainmeter使用相对大像素来绘制图形时,在这种情况下弧度(近似值)【Radians(approx)】也能在大部分例子中工作良好,而在Rainmeter属性中使用弧度(精确值)【Radians (exact)】公式将会更精确。 Degrees
|
| Radians (exact)
|
| Radians (approx)
| 0°
|
| 0
|
| 0
| 15°
|
| (PI/12)
|
| 0.262
| 30°
|
| (PI/6)
|
| 0.524
| 45°
|
| (PI/4)
|
| 0.785
| 60°
|
| (PI/3)
|
| 1.047
| 75°
|
| ((5*PI)/12)
|
| 1.309
| 90°
|
| (PI/2)
|
| 1.571
| 105°
|
| ((7*PI)/12)
|
| 1.833
| 120°
|
| ((2*PI)/3)
|
| 2.094
| 135°
|
| ((3*PI)/4)
|
| 2.356
| 150°
|
| ((5*PI)/6)
|
| 2.618
| 165°
|
| ((11*PI)/12)
|
| 2.880
| 180°
|
| (PI)
|
| 3.142
| 270°
|
| ((3*PI)/2)
|
| 4.712
| 195°
|
| ((13*PI)/12)
|
| 3.403
| 210°
|
| ((7*PI)/6)
|
| 3.665
| 225°
|
| ((5*PI)/4)
|
| 3.927
| 240°
|
| ((4*PI)/3)
|
| 4.189
| 255°
|
| ((17*PI)/12)
|
| 4.451
| 270°
|
| ((3*PI)/2)
|
| 4.712
| 285°
|
| ((19*PI)/12)
|
| 4.974
| 300°
|
| ((5*PI)/3)
|
| 5.236
| 315°
|
| ((7*PI)/4)
|
| 5.498
| 330°
|
| ((11*PI)/6)
|
| 5.760
| 345°
|
| ((23*PI)/12)
|
| 6.021
| 360°
|
| (2*PI)
|
| 6.283
|
例子 我们可以使用CPU measure,CPU measure是一个用来统计CPU使用率的measure,返回值为0%到100%.然后我们需要一个Roundline类型的meter来填充一个圆来显示当前值。我们想要让它的起始点在圆的顶部,当数值达到100%的值时(填充)抵达顶部。 - [MeasureCPU]
- Measure=CPU
- [MeterCPUCircle]
- Meter=Roundline
- MeasureName=MeasureCPU
- W=40
- H=40
- ;定义起始位置为圆的正上方,即270°(3*PI/2)位置
- StartAngle=((3*PI)/2)
- RotationAngle=(2*PI)
- LineWidth=5
- LineStart=15
- LineLength=20
- LineColor=255,255,255,255
- Solid=1
- AntiAlias=1
复制代码
这里最重要的两点是StartAngle和RotationAngle这两个字段.StartAngle定义成((3*PI)/2),即270°. 这意味着如果你直接从正右方的0°/360°开始的话,它将沿顺时针方向在度数上减去270°来定义其相对于顶部的距离差值。这个位置将作为meter的起始点. RotationAngle定义成(2*PI),它将告诉Rainmeter距离的取值范围为圆周整个360°的区域范围。
注意在StartAngle的语境中0°和360°是完全一样的,对它们的定义点都是圆周上相对于圆心正右方的点。
另一个例子,如果你需要做一个起始点为圆心正左方,100%的终止点为圆心正右方的点的“VU Meter”类型的路径, 你需要定义: - StartAngle=(PI)
- RotationAngle=(PI)
复制代码 如果你查看上面提供的常用速查表,你会发现其实它表示的是从0°/360°(记住,从正右方的点开始)位置顺时针旋转180°的点作为起始点,从这个起始点开始旋转一个完整的180°作为100%值终点。
Rainmeter的快捷方式
虽然我们认为对弧度(radians)如何在Rainmeter中工作有一个基本的了解非常重要,这里仍然有一个相当简便的方法。我们定义了一个可以帮你自动将角度数转化为弧度数的函数,这个函数是Rad(x)函数,该函数可以将角度值x转化为对应的弧度值。 在我们上面提到的第一个例子中,我们可以这么使用: - StartAngle=(Rad(270))
- RotationAngle=(Rad(360))
复制代码 |