File:Aliased.png
Summary
Description |
English: Aliased chessboard |
Date | 24 January 2003 (original upload date) |
Source | Created with a variant of this program, which I (Loisel 03:56 Jan 24, 2003 (UTC)) wrote myself. |
Author | Loisel at English Wikipedia |
Licensing
Loisel at the English Wikipedia, the copyright holder of this work, hereby publishes it under the following license:
![]() |
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License. |
![]() ![]() ![]() |
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. | |
Attribution: Loisel at the English Wikipedia | ||
| ||
This licensing tag was added to this file as part of the GFDL licensing update. |
C src code
Original code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <assert.h>
int color(double x, double y)
{
double t,z;
int i,j,k;
x=x/128.0-0.5;
y=y/2048.0;
t=1.0/(y+0.001);
z=t*x;
i=floor(t);
j=floor(z);
k=i+j;
/* printf("%f %f -> %i %i %i\n",t,z,i,j,k%2); */
return ((k%2)!=0);
}
double myrand()
{
return rand()/((double)RAND_MAX);
}
int main()
{
int i,j,k,l;
double x,y;
printf("P5\n128 128\n255\n");
srand(time(0));
for(i=0;i<128;i++)
for(j=0;j<128;j++)
{
k=0;
for(l=0;l<255;l++)
{
x=j+myrand();
y=i+myrand();
k+=color(x,y);
}
assert(k>=0 && k<=255);
putchar(k);
}
}
New code with only small changes :
To compile :
gcc a.c -Wall -lm
to run :
./a.out >a.pgm
To convert using Image Magic :
convert 5000.pgm -resize 1000x1000 a.png
// https://commons.wikimedia.org/wiki/File:Aliased.png
// gcc a.c -Wall -lm
// gcc a.c -Wall -lm
// ./a.out >a.pgm
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <assert.h>
int iMax =5000;
int jMax ;
int color(double x, double y)
{
double t,z;
int i,j,k;
x=x/(1.0*iMax)-0.5;
y=y/(jMax*6);
t=1.0/(y+0.001);
z=t*x;
i=floor(t);
j=floor(z);
k=i+j;
/* printf("%f %f -> %i %i %i\n",t,z,i,j,k%2); */
return ((k%2)!=0);
}
double myrand()
{
return rand()/((double)RAND_MAX);
}
int main()
{
int i,j,k,l;
double x,y;
jMax = iMax;
printf("P5\n %d %d\n255\n", iMax, jMax);
srand(time(0));
for(i=0;i<iMax;i++)
for(j=0;j<jMax;j++)
{
k=0;
for(l=0;l<255;l++)
{
x=j+myrand();
y=i+myrand();
k+=color(x,y);
}
assert(k>=0 && k<=255);
putchar(k);
}
return 0;
}
Source code was formatted with Emacs using GNU style.
Original upload log
The original description page was here. All following user names refer to en.wikipedia.
- 2007-09-15 05:17 Dicklyon 128×128×8 (892 bytes) Reverted to version as of 13:34, 30 September 2005
- 2007-09-14 22:56 AzaToth 1600×1200×8 (42986 bytes) remade it in povray
- 2005-09-30 13:34 Riumplus 128×128×8 (892 bytes) Losslessly recompressed the image, shrinking file size by 39%
- 2003-01-24 20:28 Loisel 128×128×8 (1450 bytes) slightly bugfixed image
Category:Aliasing
Category:CC-BY-SA-3.0-migrated
Category:Checkered
Category:Created with Persistence of Vision
Category:GFDL
Category:Graphical projection
Category:Images with C source code
Category:License migration completed
Category:Pages using deprecated source tags
Category:Self-published work
Category:User-created GFDL images