最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

algodoo進(jìn)階教程(一)——閃色的設(shè)定

2023-07-19 10:15 作者:逆旅譚帝諤  | 我要投稿

你還在為不會(huì)制作閃色而煩惱嗎?

本文可以讓你精通閃色制作原理

目錄:

一、取余

二、三角函數(shù)

附錄:各種閃色的代碼(看不懂可以來這里自取)

————————————正文開始————————————

一、取余

取余,顧名思義,就是取余數(shù)。符號(hào)是%,用法是:

若a÷b=c……d,則:a%b=d,(a,b,c,d∈Z)(取余計(jì)算與乘除計(jì)算同級(jí))

看一個(gè)例子:

postStep=(e)=>{

? ? scene.my.rainbow = color;

? ? colorHSVA = [270 * sim.time % 360, 1, 1, 1]

}

這是 @灰安教主 的圖中彩虹的代碼。(個(gè)人不太推薦寫在postStep里,后期在使用新規(guī)則時(shí)可能產(chǎn)生不必要的麻煩)

第一行不用管,咱們直接分析取余部分:

色相為270 * sim.time % 360,那么色相的變化不是完全連續(xù)的,從0°到360°均勻變化,每1.5秒完成一次循環(huán)。

也就是說,取余只適合某一變量的單向均勻循環(huán)變化,其中只有一個(gè)參數(shù)(270)負(fù)責(zé)控制閃爍速度。

由此,各種彩虹的制作都可以解決了。



二、三角函數(shù)(重點(diǎn))

高中我們都學(xué)過三角函數(shù)的復(fù)合形式:y=Asin(wx+φ)+B

那么我們應(yīng)該如何將它利用到閃色制作上來呢?

看一個(gè)例子:

postStep=(e)=>{

? ? scene.my.mono = color;

? ? colorHSVA = [0, 0, math.sin(sim.time * 6) / 2 + 0.5, 1]

}

(math.sin()是algodoo自帶的函數(shù),前面的math.不能?。?/p>

這是 @灰安教主?的圖中黑白閃的代碼。

第一行不用管,咱們直接分析三角函數(shù)部分:

對(duì)照標(biāo)準(zhǔn)式,咱們可以得到:

A=1/2 ; w=6 ; φ=0 ; x=sim.time ; B=0.5

什么意思呢?

colorHSVA(2)即顏色的亮度參數(shù)(范圍為0到1)的基準(zhǔn)線為0.5,以0.5的振幅來回浮動(dòng),且以約1.02秒為一次浮動(dòng)周期,變量是sim.time(開始擬真后計(jì)時(shí))。

也就是說,A決定振幅,w決定閃爍速度,B為基準(zhǔn)線,φ無所謂

三角函數(shù)適用于變量循環(huán)往復(fù),擺動(dòng)式的變化。

由此,三角函數(shù)可以解決絕大多數(shù)閃色的問題。

再來一個(gè)例子:

如果我想做酸橙-品紅閃呢?

已知:酸橙rgb:(0,256,0);品紅rgb:(256,0,256)

翻譯成algodoo的顏色,則

酸橙:color=【0,1,0,1】;品紅:color=【1,0,1,1】

同樣,分析三角函數(shù)的幾個(gè)參數(shù)。

我們發(fā)現(xiàn),兩個(gè)顏色的四個(gè)參數(shù)中有三個(gè)都不一樣,那么這三個(gè)參數(shù)都得使用三角函數(shù)。

可以看出,三者的基準(zhǔn)線都為0.5,振幅都為0.5,閃爍速度分別為x,-x,x(x自定,可正可負(fù))

接下來上代碼:

color={

? ? [-0.5 * math.sin(3 * sim.system.time) + 0.5, 0.5 * math.sin(3 * sim.system.time) + 0.5, -0.5 * math.sin(3 * sim.system.time) + 0.5, 1.0]

}

其中system.time是一打開algodoo就開始計(jì)時(shí)的。

建議像我這樣寫在color里,可以騰出postStep與update里的空間以供做其他處理。

最后總結(jié)一個(gè)任意閃色制作的公式:

顏色1:【a1,b1,c1】;顏色2:【a2,b2,c2】(a1,b1,c1,a2,b2,c2均為該顏色原來的rgb除以256,∈【0,1】)

則:

color={

? ? [((a1 - a2) / 2)?* math.sin(3 * sim.system.time) + (a1 + a2) / 2 , ((b1 - b2) / 2) * math.sin(3 * sim.system.time) + (b1?+ b2)?/?2 , ((c1 -?c2)?/?2) * math.sin(3 * sim.system.time) + (c1?+ c2)?/?2 , 1.0]

}

注意:(1)1和2的前后順序一定要固定,且三個(gè)一致

(2)公式中的3可更改,而且必須3個(gè)一起改

附錄:部分閃色的代碼:(復(fù)制時(shí)只需復(fù)制花括號(hào)及其里面的內(nèi)容至對(duì)應(yīng)變量后即可)

1.彩虹:colorHSVA = {

[270?*?sim.time % 360, 1, 1, 1]

}

2.淺彩虹:colorHSVA = {

[270?* sim.time % 360, 0.5, 1,?1]

}

3.深彩虹:?colorHSVA = {

[270 * sim.time % 360, 1, 0.5, 1]

}

4.彩虹閃:colorHSVA = {

[270 * sim.time % 360, math.sin(sim.time * 6) * 0.5 + 0.5, math.cos(sim.time * 6) * 0.5 + 0.5, 1]

}(注意這里的明度使用了cos)

5.黑白閃:colorHSVA = {

[0, 0, math.sin(sim.time * 6) / 2 + 0.5, 1]

}

6.紅黑閃:colorHSVA = {

[0, 1, math.sin(sim.time * 6) / 2 + 0.5, 1]

}

7.青白閃:?colorHSVA = {

[180, math.sin(sim.time * 6) / 2 + 0.5, 1, 1]

}

8.螳螂生:color = {

? ? [math.sin(sim.system.time * 3) * (22.5 / 256) + (156.5 / 256.0), math.sin(sim.system.time * 3) * (20.5 / 256) + (160.5 / 256), math.sin(sim.system.time * 3) * (78.0 / 256) + (117.0 / 256), 1]

}

9.王瓜生:color = {

? ? [math.sin(sim.system.time * 3) * (6.0 / 256) + (236 / 256.0), math.sin(sim.system.time * 3) * (77.0 / 256) + (77.0 / 256), math.sin(sim.system.time * 3) * (50.0 / 256) + (68.0 / 256), 1]

}

10.始電:color = {

? ? [math.sin(sim.system.time * 3) * (16.0 / 256) + (34 / 256.0), math.sin(sim.system.time * 3) * (37.5 / 256) + (75.5 / 256), math.sin(sim.system.time * 3) * (47.5 / 256) + (123.5 / 256), 1]

}

11.倉庚鳴:color = {

? ? [math.sin(sim.system.time * 3) * (28.0 / 256) + (226 / 256.0), math.sin(sim.system.time * 3) * (99.0 / 2 / 256) + (170.5 / 256), math.sin(sim.system.time * 3) * (36.5 / 256) + (57.5 / 256), 1]

}

12.雨水:color = {

? ? [math.sin(sim.system.time * 3) * 0.16015625 + 0.8125, math.sin(sim.system.time * 3) * 0.22070313 + 0.60351563, math.sin(sim.system.time * 3) * 0.1875 + 0.69921875, 1]

}

13.漸變紅(漸變單色就舉這一個(gè)例子):update = (e)=>{

? ? sin(sim.time * 3) / 2 >= 0 ? {

? ? ? ? colorHSVA = [0, 1, 1 - sin(sim.time * 3) / 2, 1]

? ? } : {

? ? ? ? colorHSVA = [0, 1 + sin(sim.time * 3) / 2, 1, 1]

? ? }

}

14.隨機(jī)色:后續(xù)教程里講到隨機(jī)數(shù)時(shí)再說

文章到此就結(jié)束了。

本文只介紹了一些基礎(chǔ)閃色的設(shè)定,如有其他顏色可以在評(píng)論區(qū)里補(bǔ)充。

至于脈沖,后期也會(huì)專門提溜出一期來說。

如果對(duì)你有用的話請(qǐng)多多轉(zhuǎn)發(fā)哦!感謝大家的支持!

algodoo進(jìn)階教程(一)——閃色的設(shè)定的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
宁远县| 县级市| 井研县| 内乡县| 阿拉善左旗| 黄山市| 登封市| 含山县| 望奎县| 黑龙江省| 连江县| 崇左市| 黑水县| 应城市| 新昌县| 突泉县| 景谷| 类乌齐县| 辽阳县| 永登县| 乌拉特前旗| 阿坝| 邹城市| 扎兰屯市| 夏河县| 淮北市| 崇明县| 黑水县| 海盐县| 新昌县| 大名县| 清河县| 西安市| 绵竹市| 临湘市| 颍上县| 手游| 辰溪县| 龙胜| 炉霍县| 黄骅市|