verbreitet werden – vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden
neu zusammengestellt werden – abgewandelt und bearbeitet werden
Zu den folgenden Bedingungen:
Namensnennung – Du musst angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade dich oder deine Nutzung besonders.
#include<stdio.h>#include<math.h>voidworley_noise(){constintS=1024;// image SizeconstintN=128;// Number of pointsconstintK=2;// color value sKalestaticintx[N],y[N];// points positionsinti,j,k;for(i=0;i<N;++i){x[i]=rand()%S;y[i]=rand()%S;}FILE*fo=fopen("c:\\temp\\worley.pnm","wb");fprintf(fo,"P5\n#Created by Shqn\n%d %d\n255\n",S,S);for(j=0;j<S;++j)for(i=0;i<S;++i){// for each pixel...intmind=S;for(k=0;k<N;++k){// compute min distanceintdx=i-x[k];intdy=j-y[k];intd=(int)sqrt((double)(dx*dx+dy*dy));if(mind>d)mind=d;}mind*=K;// scale and clipunsignedcharb=mind<255?mind:255;fwrite(&b,1,1,fo);}fclose(fo);}
New code : c program
// Worley noise: example of worley noise with euclidean distance function by Rocchini#include<stdio.h>#include<stdlib.h> // rand#include<time.h>#include<math.h>intmain(){constintS=1024;// image SizeconstintN=128;// Number of pointsconstintK=2;// color value sKaleintx[N],y[N];// points positionsinti,j,k;srand(time(NULL));// Initialization, should only be called once.for(i=0;i<N;++i){x[i]=rand()%S;y[i]=rand()%S;}FILE*fo=fopen("worley.pnm","wb");fprintf(fo,"P5\n %d %d\n255\n",S,S);for(j=0;j<S;++j)for(i=0;i<S;++i){// for each pixel...intmind=S;for(k=0;k<N;++k){// compute min distanceintdx=i-x[k];intdy=j-y[k];intd=(int)sqrt((double)(dx*dx+dy*dy));if(mind>d)mind=d;}mind*=K;// scale and clipunsignedcharb=mind<255?mind:255;fwrite(&b,1,1,fo);}fclose(fo);return0;}
Using libvips library:
vips vipsworley w.png 1000 1000
Kurzbeschreibungen
Ergänze eine einzeilige Erklärung, was diese Datei darstellt.