展會信息港展會大全

僅5個字符的新繪圖語言火了,ChatGPT都學(xué)會了
來源:互聯(lián)網(wǎng)   發(fā)布日期:2023-10-23 14:14:34   瀏覽:7763次  

導(dǎo)讀:克雷西 發(fā)自 凹非寺 量子位 | 公眾號 QbitAI 只用五個字符,就能完成一幅像素畫的繪制了。 這是一種新的繪圖語言,一共支持8種顏色,畫幅可達(dá)256*256。 它包含了CFR[]這五個符號,因此名字也就叫CFR[]了,主打的就是一個直觀。 而且CFR[]免費(fèi)開源,無需部署...

克雷西 發(fā)自 凹非寺

量子位 | 公眾號 QbitAI

只用五個字符,就能完成一幅像素畫的繪制了。

這是一種新的繪圖語言,一共支持8種顏色,畫幅可達(dá)256*256。

它包含了“CFR[]”這五個符號,因此名字也就叫CFR[]了,主打的就是一個直觀。

而且CFR[]免費(fèi)開源,無需部署安裝,在線就能體驗(yàn)。

雖然只有5個符號,但是它能繪制出的圖像可并不簡單,比如作者展示的這個DEMO:

CFR[]推出之后,在Reddit和The Hacker News上都引發(fā)了熱烈討論,網(wǎng)友們也紛紛曬出了自己的作品:

網(wǎng)友看了這些展示以后,不由得評價說真的是泰褲辣~

那么,這五個符號各自代表了什么含義,又該如何使用呢?

五個字符就能繪圖

前面已經(jīng)說到,這種繪圖語言包含了“C”“F”“R”“[”和“]”這五個字符。

直觀的不只是名字,這幾個符號本身也是直觀的英文首字母,它們的含義和用法是這樣的:

C代表color,用來切換顏色,支持的顏色一共有八種,依次為黑、藍(lán)、綠、藍(lán)綠(Cyan)、紅、品紅(Magenta)、黃和白。

△最左邊發(fā)灰的是白色

如果不輸入C指令則默認(rèn)為白色(畫布為黑色),其他顏色則輸入相應(yīng)數(shù)量的C。

F則代表Forward,每輸入一個F指令都會向前前進(jìn)(繪制)出一個點(diǎn)(初始方向向上)。

R則是Rotate的首字母,也就是旋轉(zhuǎn),每一個R指令會使前進(jìn)方向順時針旋轉(zhuǎn)45度。

有了上面這三個命令,就已經(jīng)可以拿來畫一些簡單的圖了。

不過這個工具一次性最多輸入256個字符,所以只靠這些基本指令還沒辦法畫得太復(fù)雜。

沒關(guān)系,我們還有兩個符號“[”和“]”。

這兩個符號是成對使用的,用來表示循環(huán)結(jié)構(gòu)。

假如我們要畫一條長度為32的線,直接輸入32個F顯然太麻煩了。

利用循環(huán)結(jié)構(gòu),我們就可以把它化簡成[[[FFFF]]]。

在這樣一個洋蔥結(jié)構(gòu)中,紅色部分的FFFF會因?yàn)榫G色括號的存在被執(zhí)行兩次。

同理,藍(lán)色括號是把整個綠色括號執(zhí)行兩次,黑色則是執(zhí)行兩次藍(lán)色,最終就畫出了長度為2×[2×(2×4)]=32的線。

為了更好地理解循環(huán)的執(zhí)行方式,我們來對比看看這兩個命令:

先說結(jié)論,它們繪制出的效果分別是這樣的:

還是同樣的道理,綠色括號中的內(nèi)容,即第一個指令中CF(這部分的一串F將用一個字母代替)首先重復(fù)一次形成最內(nèi)部的循環(huán)體(CFCF),然后再經(jīng)兩次循環(huán)得到[(CFCF)(CFCF)]和{[(CFCF)(CFCF)]},其間顏色一共發(fā)生了8次變化。

而第二組命令中,F(xiàn)首先被綠色括號變成(FF),這樣藍(lán)色括號中的內(nèi)容就是C(FF),重復(fù)后得到[C(FF)C(FF)],最終被黑色括號變成{[C(FF)C(FF)][C(FF)C(FF)]},一共涉及四次顏色變化,且每一個色條的長度都是第一種命令的兩倍。

理解了這樣的循環(huán)方式之后,我們就可以繪制各種復(fù)雜的圖形了,比如作者展示的這組條帶(相對于CFR的像素繪圖方式,它只是看上去簡單):

它由上圖中所示的命令繪制而成,如果進(jìn)行一下拆解的話是醬嬸兒的(小編真的已經(jīng)很盡力了):

如果展開則是這樣的形式:循環(huán)32次然后加C作為新的循環(huán)體循環(huán)8次。

至于更復(fù)雜的圖案,可能就需要豐富的想象力和邏輯運(yùn)算能力了。

不過我們還試了試把這種新語言教給ChatGPT,前面的對話大概是給它介紹規(guī)則以及試著畫了一個藍(lán)色正方形。

ChatGPT理解了CFR[]的一部分規(guī)則,不過對于循環(huán),它似乎還沒理解透徹。

下圖中ChatGPT給出的指令雖然是正確的,但還不是最簡形式。

又經(jīng)歷了一輪“拉鋸”之后,ChatGPT成功寫出了最簡形式的正方形指令。

需要說明的是,CFR[]繪制的圖像必須是連續(xù)的,如果有斷點(diǎn)則無法完成想要的效果。

不過,ChatGPT只能畫一些簡單圖形,作者和網(wǎng)友們展示的案例還是有些困難的。

那么,CFR[]又是如何實(shí)現(xiàn)的呢?

“畫板后藏著一只烏龜”

作者介紹,他是受到了教育編程語言Logo編程語言P′′的啟發(fā)。

這里的Logo不是我們想的商標(biāo),而是希臘語中的“文字”或“思考”、“想法”。

這是MIT在LISP的基礎(chǔ)之上專門為兒童開發(fā)的一種模塊化語言,具有豐富的繪圖功能。

而它的Web界面,則是利用Canvas和JavaScript實(shí)現(xiàn)的。

作者說,在界面中256*256的畫布背后“隱藏著一只烏龜”,它包含了位置、顏色和方向三個參數(shù)。

值得一提的是,Logo語言的圖表也是一只小烏龜。

這個烏龜?shù)某跏嘉恢檬钱嫴颊,方向向上,顏色為白色?/p>

當(dāng)收到用戶的指令時,這只“烏龜”就會按照用戶要求的方向和距離移動,并留下相應(yīng)顏色的痕跡。

想要體驗(yàn)一下的朋友,傳送門放在下方了~

傳送門:

https://susam.net/cfr.html

GitHub項(xiàng)目頁:

https://github.com/susam/cfr

贊助本站

人工智能實(shí)驗(yàn)室
相關(guān)內(nèi)容
AiLab云推薦
推薦內(nèi)容
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實(shí)驗(yàn)室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機(jī)會 | 展會港