12行javascript代碼繪制一個(gè)八卦圖
一句話說(shuō)明:用有限的代碼構(gòu)建一個(gè)1024*1024的顏色矩陣,秀出你的編程&藝術(shù)之美
起源于 stackexchange 上的一個(gè)問題, 這里稍微做了一下擴(kuò)展,支持更多編程語(yǔ)言,并放寬了代碼長(zhǎng)度的限制。
規(guī)則
目標(biāo):
通過實(shí)現(xiàn) 模版 中的一個(gè)函數(shù) get_color_at(x, y) ,在一個(gè) 1024*1024 的畫布上畫出盡可能 “有意思” 的圖案。
參數(shù):
int x, int y ,取值均為 0 - 1023,對(duì)應(yīng)畫布上坐標(biāo)點(diǎn),左上角為起始點(diǎn) (0,0)
返回:
int r, int g, int b, int alpha, 對(duì)應(yīng)顏色的 RGBA 分量,均為 0 - 255。
注意:
各語(yǔ)言中 alpha 分量定義可能不同,由 模版 統(tǒng)一轉(zhuǎn)換為: 0 - 255,值越大越透明。
要求:
只能編輯 模版 中 get_color_at(x, y) 函數(shù)體內(nèi) // {{code start}} - // {{code end}} 間的代碼;
代碼總字符數(shù)不能超過 1024 個(gè),且有較好的可讀性。
if(typeof f_c=="undefined"){
f_c=function(x,y,px,py,r){
return Math.sqrt(Math.pow(x-px,2)+Math.pow(y-py,2))<=r;
};
}
var x0=x-512,y0=y-512;
r=g=b=128;
if(f_c(x0,y0,0,0,512)) r=g=b=(x0>0)?255:0;
if(f_c(x0,y0,0,256,256)&&x0<=0) r=g=b=255;
if(f_c(x0,y0,0,-256,256)&&x0>0) r=g=b=0;
if(f_c(x0,y0,0,256,64)) r=g=b=0;
if(f_c(x0,y0,0,-256,64)) r=g=b=255;
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
JavaScript實(shí)現(xiàn)單圖片上傳并預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)單圖片上傳并預(yù)覽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
JS模擬實(shí)現(xiàn)Excel條件格式中的色階效果
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript模擬實(shí)現(xiàn)Excel條件格式中的色階效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2023-05-05
javascript 日期時(shí)間 轉(zhuǎn)換的方法
javascript 日期時(shí)間 轉(zhuǎn)換的方法,需要的朋友可以參考一下2013-02-02
javascript實(shí)現(xiàn)tabs選項(xiàng)卡切換效果(擴(kuò)展版)
常用的頁(yè)面效果有彈出層效果,無(wú)縫滾動(dòng)效果,選項(xiàng)卡切換效果,接下來(lái)與大家分享一款自己用原生javascript寫的選項(xiàng)卡切換效果在原有的基礎(chǔ)上進(jìn)行了擴(kuò)展,加入了自動(dòng)輪播,這樣就變成了類似圖片輪播的效果2013-03-03
基于javascript實(shí)現(xiàn)窗口抖動(dòng)效果
這篇文章主要介紹了基于javascript實(shí)現(xiàn)窗口抖動(dòng)效果,需要的朋友可以參考下2016-01-01

