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

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

ShaderToy奇巧:液晶顯示邏輯

2022-10-09 10:54 作者:DeadCyber  | 我要投稿

在瀏覽ShaderToy上的無限圖書館的過程中,我發(fā)現(xiàn)對(duì)于圖書館的每一層,都會(huì)有相應(yīng)的編號(hào):


我想看看它是怎么實(shí)現(xiàn)的,結(jié)果發(fā)現(xiàn)代碼沒啥注釋,而且?guī)讉€(gè)無限圖書館的代碼都一模一樣,你抄我我抄你。最重要的是還有bug,沒辦法只能自己分析然后改好了。

找到最后有個(gè)核心函數(shù)ShowDig,傳入2D坐標(biāo),和要顯示的0-9數(shù)字,就能返回是否在顯示范圍內(nèi)。跟電梯液晶屏一樣。如果要顯示數(shù)字8,大概是這樣子:

由于在著色范圍內(nèi)的點(diǎn)都返回1,于是就可以用于著色判斷了:

會(huì)顯示一個(gè)綠色的8。

那我們來看這個(gè)神奇的函數(shù)是怎么實(shí)現(xiàn)的:

經(jīng)過分析,DigSeg用來畫液晶的小長(zhǎng)方塊,DSG表示如果當(dāng)前k為奇數(shù),就畫當(dāng)前小塊。

ShowDig中,vp,vm,vo分別是液晶中心點(diǎn)到各個(gè)小長(zhǎng)方塊中心點(diǎn)的偏移,由于對(duì)稱關(guān)系,所以只需要寫3個(gè)。

??? 于是關(guān)鍵來了,k是什么,從0-9對(duì)應(yīng)的那些magic number:119,36,93...又是什么。

??? 由DSG想到輾轉(zhuǎn)相除法,想到二進(jìn)制。測(cè)試了一下,沒錯(cuò)了。

????以數(shù)字1為例,它對(duì)應(yīng)36,36輾轉(zhuǎn)相除,也就是2進(jìn)制轉(zhuǎn)換為100100

??? 由于液晶屏上只有7個(gè)小塊,所以我們補(bǔ)齊為0100100,如果用自然數(shù),從高位開始數(shù),那么意思是2,5號(hào)塊需要顯示。根據(jù)倒數(shù)2,3行DSG代碼內(nèi)容,可以得到液晶小塊的順序關(guān)系如上圖黃色所示,那么2,5號(hào)亮起,的確是數(shù)字1的樣子。

??? 額外的,如果傳入-1,用4號(hào)塊亮起,當(dāng)作負(fù)數(shù)的符號(hào)。

??? 至此,我們能顯示單個(gè)數(shù)字0-9和負(fù)號(hào)了。

??? 由于shadertoy上的函數(shù)有問題,所以我只能寫點(diǎn)邏輯,顯示十進(jìn)制數(shù):

測(cè)試成功:

利用類似的邏輯,我們不僅可以設(shè)計(jì)液晶屏,還可以設(shè)計(jì)點(diǎn)陣,畫一些ASCII符號(hào):

每個(gè)”像素點(diǎn)“都是一個(gè)ASCII符號(hào)

分析起來簡(jiǎn)單,但是實(shí)際自己要做,對(duì)于我來說不是很容易,因?yàn)闆]有”那種“思維。也許我應(yīng)該多玩玩《SHENZHEN IO》


ShaderToy奇巧:液晶顯示邏輯的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
太原市| 扎囊县| 古浪县| 那坡县| 新巴尔虎右旗| 金塔县| 鄄城县| 泗阳县| 桓仁| 威海市| 六盘水市| 蒙山县| 苍溪县| 汶川县| 平乡县| 东城区| 东海县| 平和县| 从化市| 师宗县| 佳木斯市| 永定县| 黄冈市| 松潘县| 洛南县| 合作市| 台州市| 霸州市| 昔阳县| 大余县| 张北县| 申扎县| 师宗县| 阿尔山市| 成安县| 雷波县| 宁蒗| 延长县| 道孚县| 锡林浩特市| 洪湖市|