18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

短短幾行代碼,就能畫出如此絢爛的圖像

Q4MP_gh_c472c21 ? 來源:C語言與CPP編程 ? 作者:C語言與CPP編程 ? 2022-05-16 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

事情是這么一回事:

國外有個(gè)大佬在StackExchange上發(fā)起了一個(gè)叫做Tweetable Mathematical Art的比賽。

參賽者需要用C++編寫代表三原色的RD、GR、BL三個(gè)函數(shù),每個(gè)函數(shù)都不能超過140個(gè)字符。每個(gè)函數(shù)都會(huì)接到 i 和 j 兩個(gè)整型參數(shù)(0 ≤ i, j ≤ 1023),然后需要返回一個(gè) 0 到 255 之間的整數(shù),表示位于 (i, j) 的像素點(diǎn)的顏色值。

舉個(gè)例子,如果 RD(0, 0) 和 GR(0, 0) 返回的都是 0 ,但 BL(0, 0) 返回的是 255 ,那么圖像的最左上角那個(gè)像素就是藍(lán)色。

參賽者編寫的代碼會(huì)被插進(jìn)下面這段程序當(dāng)中(我做了一些細(xì)微的改動(dòng)),最終會(huì)生成一個(gè)大小為 1024×1024 的圖片。



//NOTE:compilewithg++filename.cpp-std=c++11
#include #include #include #define DIM 1024#define DM1 (DIM-1)#define _sq(x) ((x)*(x)) // square#define _cb(x) abs((x)*(x)*(x)) // absolute value of cube#define _cr(x) (unsigned char)(pow((x),1.0/3.0)) // cube root
unsigned char GR(int,int);unsigned char BL(int,int);
unsigned char RD(int i,int j){// YOUR CODE HERE}unsigned char GR(int i,int j){// YOUR CODE HERE}unsigned char BL(int i,int j){// YOUR CODE HERE}
void pixel_write(int,int);FILE *fp;int main(){fp = fopen("MathPic.ppm","wb");fprintf(fp, "P6
%d %d
255
", DIM, DIM);for(int j=0;jfor(int i=0;ipixel_write(i,j);fclose(fp);return 0;}void pixel_write(int i, int j){static unsigned char color[3];color[0] = RD(i,j)&255;color[1] = GR(i,j)&255;color[2] = BL(i,j)&255;fwrite(color, 1, 3, fp);}

我選了一些自己比較喜歡的作品,放在下面和大家分享。首先是一個(gè)來自 Martin Büttner 的作品:

8fdfe1fe-d4ce-11ec-bce3-dac502259ad0.jpg

它的代碼如下:


unsigned char RD(int i,int j){return (char)(_sq(cos(atan2(j-512,i-512)/2))*255);}
unsigned char GR(int i,int j){return (char)(_sq(cos(atan2(j-512,i-512)/2-2*acos(-1)/3))*255);}
unsigned char BL(int i,int j){return (char)(_sq(cos(atan2(j-512,i-512)/2+2*acos(-1)/3))*255);}

同樣是來自 Martin Büttner 的作品

903b258c-d4ce-11ec-bce3-dac502259ad0.jpg

這是目前暫時(shí)排名第一的作品。它的代碼如下:


unsigned char RD(int i,int j){#define r(n)(rand()%n)static char c[1024][1024];return!c[i][j]?c[i][j]=!r(999)?r(256):RD((i+r(2))%1024,(j+r(2))%1024):c[i][j];}
unsigned char GR(int i,int j){static char c[1024][1024];return!c[i][j]?c[i][j]=!r(999)?r(256):GR((i+r(2))%1024,(j+r(2))%1024):c[i][j];}
unsigned char BL(int i,int j){static char c[1024][1024];return!c[i][j]?c[i][j]=!r(999)?r(256):BL((i+r(2))%1024,(j+r(2))%1024):c[i][j];}

下面這張圖片仍然出自 Martin Büttner 之手

904e5940-d4ce-11ec-bce3-dac502259ad0.jpg

難以想象, Mandelbrot 分形圖形居然可以只用這么一點(diǎn)代碼畫出:


unsigned char RD(int i,int j){float x=0,y=0;int k;for(k=0;k++<256;){float a=x*x-y*y+(i-768.0)/512;y=2*x*y+(j-512.0)/512;x=a;if(x*x+y*y>4)break;}return log(k)*47;}
unsigned char GR(int i,int j){float x=0,y=0;int k;for(k=0;k++<256;){float a=x*x-y*y+(i-768.0)/512;y=2*x*y+(j-512.0)/512;x=a;if(x*x+y*y>4)break;}return log(k)*47;}
unsigned char BL(int i,int j){float x=0,y=0;int k;for(k=0;k++<256;){float a=x*x-y*y+(i-768.0)/512;y=2*x*y+(j-512.0)/512;x=a;if(x*x+y*y>4)break;}return 128-log(k)*23;}

Manuel Kasten 也制作了一個(gè) Mandelbrot 集的圖片,與剛才不同的是,該圖描繪的是 Mandelbrot 集在某處局部放大后的結(jié)果

90844e24-d4ce-11ec-bce3-dac502259ad0.jpg

它的代碼如下:

unsigned char RD(int i,int j){double a=0,b=0,c,d,n=0;while((c=a*a)+(d=b*b)<4&&n++<880){b=2*a*b+j*8e-9-.645411;a=c-d+i*8e-9+.356888;}return 255*pow((n-80)/800,3.);}
unsigned char GR(int i,int j){double a=0,b=0,c,d,n=0;while((c=a*a)+(d=b*b)<4&&n++<880){b=2*a*b+j*8e-9-.645411;a=c-d+i*8e-9+.356888;}return 255*pow((n-80)/800,.7);}
unsigned char BL(int i,int j){double a=0,b=0,c,d,n=0;while((c=a*a)+(d=b*b)<4&&n++<880){b=2*a*b+j*8e-9-.645411;a=c-d+i*8e-9+.356888;}return 255*pow((n-80)/800,.5);}

這是 Manuel Kasten 的另一作品

90979560-d4ce-11ec-bce3-dac502259ad0.jpg

生成這張圖片的代碼很有意思:函數(shù)依靠 static 變量來控制繪畫的進(jìn)程,完全沒有用到 i 和 j 這兩個(gè)參數(shù)!


unsigned char RD(int i,int j){static double k;k+=rand()/1./RAND_MAX;int l=k;l%=512;return l>255?511-l:l;}
unsigned char GR(int i,int j){static double k;k+=rand()/1./RAND_MAX;int l=k;l%=512;return l>255?511-l:l;}
unsigned char BL(int i,int j){static double k;k+=rand()/1./RAND_MAX;int l=k;l%=512;return l>255?511-l:l;}

這是來自 githubphagocyte 的作品

90aa7842-d4ce-11ec-bce3-dac502259ad0.jpg

它的代碼如下:


unsigned char RD(int i,int j){float s=3./(j+99);float y=(j+sin((i*i+_sq(j-700)*5)/100./DIM)*35)*s;return (int((i+DIM)*s+y)%2+int((DIM*2-i)*s+y)%2)*127;}
unsigned char GR(int i,int j){float s=3./(j+99);float y=(j+sin((i*i+_sq(j-700)*5)/100./DIM)*35)*s;return (int(5*((i+DIM)*s+y))%2+int(5*((DIM*2-i)*s+y))%2)*127;}
unsigned char BL(int i,int j){float s=3./(j+99);float y=(j+sin((i*i+_sq(j-700)*5)/100./DIM)*35)*s;return (int(29*((i+DIM)*s+y))%2+int(29*((DIM*2-i)*s+y))%2)*127;}

這是來自 githubphagocyte 的另一個(gè)作品

91141db0-d4ce-11ec-bce3-dac502259ad0.jpg

這是一張使用 diffusion-limited aggregation 模型得到的圖片,程序運(yùn)行起來要耗費(fèi)不少時(shí)間。代碼很有意思:巧妙地利用宏定義,打破了函數(shù)與函數(shù)之間的界限,三段代碼的字?jǐn)?shù)限制便能合在一起使用了。


unsigned char RD(int i,int j){#define D DIM#define M m[(x+D+(d==0)-(d==2))%D][(y+D+(d==1)-(d==3))%D]#define R rand()%D#define B m[x][y]return(i+j)?256-(BL(i,j))/2:0;}
unsigned char GR(int i,int j){#define A static int m[D][D],e,x,y,d,c[4],f,n;if(i+j<1){for(d=D*D;d;d--){m[d%D][d/D]=d%6?0:rand()%2000?1:255;}for(n=1return RD(i,j);}
unsigned char BL(int i,int j){A;n;n++){x=R;y=R;if(B==1){f=1;for(d=0;d<4;d++){c[d]=M;f=fif(f>2){B=f-1;}else{++e%=4;d=e;if(!c[e]){B=0;M=1;}}}}}return m[i][j];}

最后這張圖來自 Eric Tressler

914fa22c-d4ce-11ec-bce3-dac502259ad0.jpg

這是由 logistic 映射得到的 Feigenbaum 分岔圖。和剛才一樣,對應(yīng)的代碼也巧妙地利用了宏定義來節(jié)省字符:


unsigned char RD(int i,int j){#define A float a=0,b,k,r,x#define B int e,o#define C(x) x>255?255:x#define R return#define D DIMR BL(i,j)*(D-i)/D;}
unsigned char GR(int i,int j){#define E DM1#define F static float#define G for(#define H r=a*1.6/D+2.4;x=1.0001*b/DR BL(i,j)*(D-j/2)/D;}
unsigned char BL(int i,int j){F c[D][D];if(i+j<1){A;B;G;a0.1){G b=0;b0;k1-x);if(k>D/2){e=a;o=(E*x);c[e][o]+=0.01;}}}}}R C(c[j][i])*i/D;}

怎么樣,短短幾行代碼,就能畫出如此絢爛的圖像,你有沒有什么腦洞大開的想法?

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4402

    瀏覽量

    66548
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2120

    瀏覽量

    76578
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4927

    瀏覽量

    72508

原文標(biāo)題:這幾行代碼,驚為天人!

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    淘寶拍立淘接口實(shí)戰(zhàn):圖像優(yōu)化、識別調(diào)優(yōu)與避坑代碼示例

    本文詳解淘寶拍立淘接口(taobao.picture.search)實(shí)戰(zhàn)技巧,涵蓋圖像預(yù)處理、識別優(yōu)化、簽名生成與供應(yīng)鏈數(shù)據(jù)聯(lián)動(dòng),結(jié)合代碼示例解析高頻坑點(diǎn),如Base64格式錯(cuò)誤、限流處理、分頁失效等,助開發(fā)者提升識別率至85%以上,高效對接電商選品與供應(yīng)鏈系統(tǒng)。
    的頭像 發(fā)表于 10-09 14:28 ?146次閱讀

    1688 拍立淘接口實(shí)戰(zhàn):從圖像優(yōu)化、工廠排序到供應(yīng)鏈匹配(附可跑代碼

    深耕B2B電商十余年,親歷1688拍立淘接口20+坑:從圖像預(yù)處理、權(quán)限申請到工廠排序。本文詳解核心參數(shù)、實(shí)戰(zhàn)代碼及多圖驗(yàn)證、定制方案生成等高級技巧,助你實(shí)現(xiàn)“看圖找廠”精準(zhǔn)匹配,附可運(yùn)行代碼,新手也能少走兩年彎路。
    的頭像 發(fā)表于 10-09 10:39 ?169次閱讀

    思特威推出高性能CMOS圖像傳感器SC562HS

    近日,技術(shù)先進(jìn)的CMOS圖像傳感器供應(yīng)商思特威(SmartSens,股票代碼688213),全新推出5000萬像素1μm像素尺寸手機(jī)應(yīng)用CMOS圖像傳感器——SC562HS。
    的頭像 發(fā)表于 09-01 17:13 ?3405次閱讀

    知乎開源“智能預(yù)渲染框架” 幾行代碼實(shí)現(xiàn)鴻蒙應(yīng)用頁面“秒開”

    ,交互延遲等核心痛點(diǎn),通過智能預(yù)測用戶瀏覽目標(biāo)進(jìn)行提前渲染,只需幾行代碼即可顯著提升復(fù)雜頁面的加載性能,實(shí)現(xiàn)“頁面秒開”的高效體驗(yàn),為鴻蒙開發(fā)者帶來開發(fā)效率和用戶體驗(yàn)的雙重飛躍。 隨著鴻蒙生態(tài)快速發(fā)展,應(yīng)用開發(fā)者難免會(huì)遇到一些性能問題
    的頭像 發(fā)表于 08-29 14:32 ?396次閱讀
    知乎開源“智能預(yù)渲染框架” <b class='flag-5'>幾行</b><b class='flag-5'>代碼</b>實(shí)現(xiàn)鴻蒙應(yīng)用頁面“秒開”

    思特威推出4MP高性能圖像傳感器新品SC489SL

    近日,技術(shù)先進(jìn)的CMOS圖像傳感器供應(yīng)商思特威(SmartSens,股票代碼688213),宣布推出4MP高性能圖像傳感器新品——SC489SL。
    的頭像 發(fā)表于 08-14 09:19 ?4987次閱讀
    思特威推出4MP高性能<b class='flag-5'>圖像</b>傳感器新品SC489SL

    利用NVIDIA 3D引導(dǎo)生成式AI Blueprint控制圖像生成

    AI 賦能的圖像生成技術(shù)突飛猛進(jìn),從早期模型會(huì)生成手指過多的人類圖像,到現(xiàn)在能創(chuàng)造出令人驚嘆的逼真視覺效果。即使取得了如此飛躍,仍然存在一個(gè)挑戰(zhàn):實(shí)現(xiàn)創(chuàng)意掌控。
    的頭像 發(fā)表于 06-05 09:24 ?643次閱讀

    一文讀懂!圖像采集卡是什么?它在工業(yè)/醫(yī)療/監(jiān)控等多領(lǐng)域中的作用

    你有沒有想過,在工業(yè)檢測、醫(yī)院手術(shù)室、安防監(jiān)控這些高精度影像場景中,圖像是怎么被“抓”進(jìn)電腦里進(jìn)行分析處理的?單靠攝像頭就能搞定嗎?其實(shí)并沒那么簡單,真正起到關(guān)鍵作用的,是一種常被忽視但極其重要的設(shè)備——圖像采集卡。
    的頭像 發(fā)表于 05-13 13:35 ?1496次閱讀
    一文讀懂!<b class='flag-5'>圖像</b>采集卡是什么?它在工業(yè)/醫(yī)療/監(jiān)控等多領(lǐng)域中的作用

    基于LockAI視覺識別模塊:C++使用圖像的統(tǒng)計(jì)信息

    )。 COLOR_BGR2GRAY:將BGR圖像轉(zhuǎn)換為灰度圖像。 返回值: 無。最后結(jié)果儲(chǔ)存在grayImage中。注意: 其中根據(jù)不同的轉(zhuǎn)換要求可以使用不同的轉(zhuǎn)換代碼,具體如下所示。 轉(zhuǎn)換方向 轉(zhuǎn)換
    發(fā)表于 05-08 10:31

    基于RV1126開發(fā)板實(shí)現(xiàn)自學(xué)習(xí)圖像分類方案

    在RV1126開發(fā)板上實(shí)現(xiàn)自學(xué)習(xí):在識別前對物體圖片進(jìn)行模型學(xué)習(xí),訓(xùn)練完成后通過算法分類得出圖像的模型ID。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成
    的頭像 發(fā)表于 04-21 13:37 ?11次閱讀
    基于RV1126開發(fā)板實(shí)現(xiàn)自學(xué)習(xí)<b class='flag-5'>圖像</b>分類方案

    基于RV1126開發(fā)板的rknn-toolkit-lite使用方法

    譯的模型,短短幾行代碼即可完成算法的推理,大幅降低開發(fā)成本。同時(shí)很多不熟悉C/C++的算法開發(fā)人員有效降低開發(fā)門檻。本地文檔是根據(jù)已經(jīng)完成rknn模型轉(zhuǎn)換的模型進(jìn)行板卡上的推理,關(guān)于rknn模型轉(zhuǎn)換請閱讀請閱讀《在EASY EA
    的頭像 發(fā)表于 04-15 17:33 ?814次閱讀
    基于RV1126開發(fā)板的rknn-toolkit-lite使用方法

    用touchgfx生成了代碼,也能編譯成功,但下載之后無法顯示圖像,可能是什么原因?

    我用touchgfx生成了代碼,也能編譯成功,但下載之后無法顯示圖像,可能是什么原因?
    發(fā)表于 03-07 06:39

    創(chuàng)建了用于OpenVINO?推理的自定義C++和Python代碼,從C++代碼中獲得的結(jié)果與Python代碼不同是為什么?

    創(chuàng)建了用于OpenVINO?推理的自定義 C++ 和 Python* 代碼。 在兩個(gè)推理過程中使用相同的圖像和模型。 從 C++ 代碼中獲得的結(jié)果與 Python* 代碼不同。
    發(fā)表于 03-06 06:22

    圖像采集卡:現(xiàn)代圖像處理技術(shù)的關(guān)鍵組件

    在現(xiàn)代科技快速發(fā)展的背景下,圖像處理技術(shù)已成為信息技術(shù)領(lǐng)域不可或缺的一部分。圖像采集卡,作為連接計(jì)算機(jī)與各種圖像采集設(shè)備的重要硬件組件,扮演著至關(guān)重要的角色。它不僅涉及圖像信號的轉(zhuǎn)換和
    的頭像 發(fā)表于 02-20 10:42 ?753次閱讀
    <b class='flag-5'>圖像</b>采集卡:現(xiàn)代<b class='flag-5'>圖像</b>處理技術(shù)的關(guān)鍵組件

    OpenAI API Key 獲取全攻略:入門、精通與詳解教程(國內(nèi)開發(fā)者優(yōu)化版)

    引言: 想象一下:只需幾行代碼,你的應(yīng)用就能像 ChatGPT 一樣智能對話;輸入幾個(gè)關(guān)鍵詞,瞬間生成引人入勝的文案;上傳一張圖片,AI 就能理解并分析…… 這不是科幻,而是 Open
    的頭像 發(fā)表于 02-15 17:26 ?4468次閱讀
    OpenAI API Key 獲取全攻略:入門、精通與詳解教程(國內(nèi)開發(fā)者優(yōu)化版)

    使用Python進(jìn)行圖像處理

    下面是一個(gè)關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?793次閱讀
    使用Python進(jìn)行<b class='flag-5'>圖像</b>處理