佛山科学技术学院吧 关注:85,413贴子:1,504,557
  • 4回复贴,共1

教你用20行c++代码生成绚幻的图片

只看楼主收藏回复


代码**************************************************************************************************
#include<stdio.h>
#include <cmath>
#include <cstdlib>
#define DIM 1024
#define DM1 (DIM-1)
#define _sq(x) ((x)*(x)) // 平方
#define _cb(x) abs((x)*(x)*(x)) // 立方的绝对值
#define _cr(x) (unsigned char)(pow((x),1.0/3.0)) // 立方根
unsigned char GR(int,int);
unsigned char BL(int,int);
//修改下面的值即可更改图片
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); }
void pixel_write(int,int);
FILE *fp;
int main()
{
fp = fopen("pic.ppm","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);
printf("end\n");
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);
}
**********************************************************************************************************************
不同的数值生成的图片(生成的图片用ps可以打开),千奇百怪,但都是很好看的。短短几十行代码能够生成如此绚丽的图片,不得不说在编程的世界里,只有你想不到,没有作不到的。


IP属地:广东1楼2018-12-17 22:04回复
    教你二十张图片学会脱发


    来自Android客户端2楼2018-12-18 07:17
    回复


      IP属地:广东来自Android客户端3楼2018-12-22 16:21
      回复
        img的可以吗?


        IP属地:广东4楼2019-12-05 17:30
        回复
          我Python第一个不服


          IP属地:广东来自手机贴吧5楼2019-12-05 20:56
          回复