日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

最简单的分形图像生成算法

發(fā)布時(shí)間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最简单的分形图像生成算法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? 本文將提供一段完整地生成一幅分形圖像文件的C語(yǔ)言代碼,并且極為簡(jiǎn)單.我相信這應(yīng)該是最簡(jiǎn)單的分形圖像生成算法.大部分的分形圖像代碼也都很短,但一有遞歸迭代就難以理解了.而這段代碼則很好懂,并且其生成的圖像會(huì)使人意想不到.

#include <iostream> #include <cmath> #include <cstdlib>#define DIM 1000void pixel_write(int,int); FILE *fp;int main() {fp = fopen("image.ppm","wb");if (!fp){return -1;}fprintf(fp, "P6\n%d %d\n255\n", DIM, DIM);for(int j=0;j<DIM;j++){for(int i=0;i<DIM;i++){pixel_write(i,j);}}fclose(fp);return 0; }void pixel_write(int i, int j) {static unsigned char color[3];float t = j + i*0.001f;memcpy(color, &t, 3);fwrite(color, 1, 3, fp);// 其實(shí)更簡(jiǎn)單粗爆的方式是//fwrite(&t, 1, 3, fp); }

代碼運(yùn)行完后,會(huì)生成一個(gè)PPM格式的圖像文件,為:

最簡(jiǎn)單的分形圖形應(yīng)該是康托(Cantor)三分集,只是不停地將線段一分為二.如下圖所示:

該算法生成的圖像很康托三分集有些相似.尤其是它的綠色通道:

將代碼修改下,其分形的效果會(huì)更明顯:

void pixel_write(int i, int j) {static unsigned char color[3];float t = j/4 + i*0.001f;memcpy(color, &t, 3);fwrite(color, 1, 3, fp); }

相關(guān)文章:

C語(yǔ)言中將0到1000的浮點(diǎn)數(shù)用強(qiáng)制指針類(lèi)型轉(zhuǎn)換的方式生成一幅圖像

?

總結(jié)

以上是生活随笔為你收集整理的最简单的分形图像生成算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。