C++ 用RGB 三种颜色绘图

发布时间:2024-11-14 22:05

#include <iostream> #include <cmath> #include <cstdlib> #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){ 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; } void pixel_write(int,int); FILE *fp; int main(){ fp = fopen("MathPic.png","wb"); 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]; color[0] = RD(i,j)&255; color[1] = GR(i,j)&255; color[2] = BL(i,j)&255; fwrite(color, 1, 3, fp); }

# 上边代码保存为 draw.cpp 编译与运行 g++ draw.cpp -o draw (编译) ./draw (运行) 然后当前目录就会出现 MathPic.png

http://www.matrix67.com/blog/archives/6039

http://codegolf.stackexchange.com/questions/35569/tweetable-mathematical-art

网址:C++ 用RGB 三种颜色绘图 https://www.yuejiaxmz.com/news/view/75999

相关内容

MATLAB图像处理(包括图像类型转换)
用于衣物护理设备的颜色搭配方法和衣物护理设备与流程
创意亲子游戏6则,让假期充实起来!
Canvas绘图小结
如何有效压缩图片内存以节省存储空间
DATA
图片处理
使用CAD布局绘图的好处
史上最全的衣服颜色搭配技巧
绘画心得体会(通用16篇)

随便看看