# Calc“伪”入门教程 - Rainmeter技术教程 - 雨滴社区 - Powered by Discuz!
 找回密码
 点击注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 51822|回复: 82

[菜鸟教程] Calc“伪”入门教程

  [复制链接]

签到天数: 176 天

[LV.7]常住居民III

发表于 2013-1-12 20:48:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?点击注册

x
本帖最后由 Real_聪 于 2013-1-12 20:49 编辑

Calc入门教程
作者:Real
参考文档:夜色的“Rainmeter中文手册”
动态皮肤做了一阵子了,感觉还行,最开心就是可以顺便装下大神~哈哈
今天,蜜蜂跟大家分享下这阵子学的calc,没有专业的语言,也没有大神的操作,只希望大家都能做出自己喜欢的更加精美的皮肤~
Calc是啥?我的理解就是动态变化的实现,包括数值和图形。
(当然,你想实现更加强大的功能就要学lua了,反正我不会,就暂时顶着用了,这里不详述)
下面,从最简单的入手,先讲最简单的构成
[MeasureCalc]
Measure=Calc
Formula=XXXXXXXXX
首先,看看夜色在手册里对calc的介绍:
Calc
这个meausre是用来计算公式的。
Formula
这个定义计算公式,你可以将其他measure作为变量。
很好,坚持看到这里表明你基本理解了——Calc就是通过公式(函数)来改变某个“值”的!下面开始从简单的实例一步步来理解它的应用!!!
注意:下面的例子中的[Test]将作为检测Calc的值,请观察值的变化
例子1——特定值的表示:
1.png
这样写,函数(Formula)是1,所以检测值也就是1
(备注:加入上面这句Dynamicvariables=1是为了方便日后实际运用中,Test的值能动态变化,不加的话只能显示Calc值的初值)
例子2——值的递增:

                               
登录/注册后可看大图

函数是自身(MeasureCalc)不断加1,所以值是无限递增+1的。递减同理。

2.png
3.png
4.png

评分

参与人数 6心动值 +1 活跃值 +23 技术值 +2 收起 理由
一条小鲤鱼 + 1 原创神马的最爱了≧▼≦
1554579425 + 1 没有原因,我就要给
[email protected] + 1 我太喜欢这个资源啦(ノ°ο°)ノ
饭团啊哒 + 1 很给力,楼主辛苦了!
萝莉头 + 10 很给力,楼主辛苦了!
asian橙子 + 1 + 10 + 1 很给力,楼主辛苦了!

查看全部评分

回复

使用道具 举报

签到天数: 176 天

[LV.7]常住居民III

 楼主| 发表于 2013-1-12 20:50:34 | 显示全部楼层
这里,要讲讲函数了,首先要知道Rainmeter里函数符号有哪些(引用文档):
Operators(算术操作符)
•        + (加)
•        - (减)
•        * (乘)
•        / (除)
•        ** (幂,次方)
•        % (余数或绝对值)
•        & (按位与)
•        | (按位或)
•        ^ (异或)
•        ~ (按位非)
Logical Operators(逻辑操作符)
&#8226;        <> (不等于)
&#8226;        = (等于)
&#8226;        > (大于)
&#8226;        < (小于)
&#8226;        <= (小于等于)
&#8226;        >= (大于等于)
&#8226;        && (逻辑与)
&#8226;        || (逻辑或)
Functions(函数)
&#8226;        ATAN(x), ASIN(x), ACOS(x), COS(x), SIN(x), TAN(x) - 标准三角函数,其中x是弧度。
&#8226;        ABS(x) - x的绝对值
&#8226;        EXP(x) - 返回ex
&#8226;        LOG(x) - 以10为底的x的对数。
&#8226;        LN(x) - 以e为底的x的对数。
&#8226;        SQRT(x) - x的平方根。
&#8226;        SGN(x) - 当x为正数时,值为1,当x为负数时,值为-1。
&#8226;        FRAC(x) - 返回参数x的小数部分 (例如. FRAC(1.234) = 0.234).
&#8226;        TRUNC(x) - 返回参数x的整数部分(例如. TRUNC(1.234) = 1).
&#8226;        FLOOR(x) –去除小数点后面的小数取整
&#8226;        CEIL(x) –只要小数点后面数字不全为0,就去掉小数点后面的并且加1(俗称进1取整)。
&#8226;        ROUND(x[,precision]) - 将x四舍五入到整数,也可以指定的保留的小数位数,精度可选。
&#8226;        RAD(x) - 将x从度数转为弧度。
Constants
&#8226;        PI - π(~3.14159265...)
&#8226;        E - 欧拉常数e(~2.71828182...)
(注释:条件语句中1(true),0(false)分别表示真和假。)
回复

使用道具 举报

签到天数: 176 天

[LV.7]常住居民III

 楼主| 发表于 2013-1-12 20:52:17 | 显示全部楼层
——但是,可以发现例子2中,当值达到10后,开始出现“残缺”的问题
2.png
原因是,因为Rainmeter默认情况下,先读取代码原始尺寸,就是最开始表现出来的整体尺寸大小。
例子2可见,原始尺寸是0Calc最小值是0)的大小。所以当值为10后,原来的面积满足不了10(二位数)的面积所需,就出现了“残缺”的问题了。  
那么,如何解决呢?
答案很简单!,只需要增加一句:
3.png
DynamicWindowSize
如果设置为1窗口的大小在每一次更新的时候即使一次。 此窗口会自动缩放如果必要。
(另外,[Rainmeter] 节点定义了 Rainmeter 的常规设置,一般情况下最好不要忽略——格式问题。前面例子是为了最简洁地阐述Calc功能,所以忽略= =|||
1.png
4.png
回复

使用道具 举报

签到天数: 176 天

[LV.7]常住居民III

 楼主| 发表于 2013-1-12 20:56:52 | 显示全部楼层
例子3——宽度的变化

                               
登录/注册后可看大图

4.png
例子3可见,本来一个长宽(WH)为200的正方形,宽度随着Calc的值(递增+4)变化而改变着,成为一个越来越宽的矩形!
现在,从上面三个例子中相信你已经理解了动态皮肤的原理了吧?
当然,不止W(宽度),连XY坐标、透明度ImageAlpha、色彩值RGB等等带值的地方全部可以套入!
下面是我做过的皮肤的基本应用——

                               
登录/注册后可看大图

(图片剪裁ImageCrop的值的变化)

                               
登录/注册后可看大图

(随Calc检测电量值的变化改改变显示的图片(利用名字变化))

                               
登录/注册后可看大图

(高度H的变化)
感谢你一路坚持看到现在,相信你已经蠢蠢欲动了!但是,还有些特别的功能哦!
下面,讲讲两个特别的但经常会用到的知识点例子:
1, Formula=Counter%10
例子3:

                               
登录/注册后可看大图

(返回从0—9的递增循环,注意不会到10!Counter%30就是0—29)
2,  Formula=Random
例子4:

                               
登录/注册后可看大图

(函数返回随机值,默认是0—100。当然,你也可以利用LowBound和HighBound设定上下限。)
UpdateRandom
UpdateRandom=1 表示每次更新都会返回一个随机数UpdateRandom=0 表示刷新皮肤才返回一个随机数。
到这里,相信你已经基本了解Calc是如何实现皮肤的动态变化了吧?动态变化其实并不神秘和强大,不懂lua也可以做得美美的哦!只要你有足够的耐心和丰富的创意~
更多Calc相关资料,请参考夜色翻译的“Rainmeter中文手册”。
谢谢大家~

回复

使用道具 举报

签到天数: 469 天

[LV.9]以坛为家II

发表于 2013-1-12 20:59:25 | 显示全部楼层


啦啦啦~~

我来瞧一瞧~~
辛苦蜜蜂同志。
回复

使用道具 举报

签到天数: 1035 天

[LV.10]以坛为家III

发表于 2013-1-12 21:06:19 | 显示全部楼层
占领本层。。。楼下速速顶起
回复

使用道具 举报

签到天数: 230 天

[LV.7]常住居民III

发表于 2013-1-12 21:49:19 | 显示全部楼层
技术大神,支持……
回复

使用道具 举报

签到天数: 192 天

[LV.7]常住居民III

发表于 2013-1-12 22:06:11 | 显示全部楼层
前排广告位出租~
回复

使用道具 举报

签到天数: 108 天

[LV.6]常住居民II

发表于 2013-1-12 22:28:48 | 显示全部楼层
LZ   辛苦了     
回复

使用道具 举报

签到天数: 278 天

[LV.8]以坛为家I

发表于 2013-1-12 23:05:43 | 显示全部楼层
貌似很厉害的赶脚
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

快速回复 返回顶部 返回列表