From 73827ba1f4a50107272d6e465b92f356fb9e0abe Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Sun, 9 May 2004 14:53:42 +0000 Subject: initial --- src/makepic.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/makepic.c (limited to 'src/makepic.c') diff --git a/src/makepic.c b/src/makepic.c new file mode 100644 index 0000000..5c54cbd --- /dev/null +++ b/src/makepic.c @@ -0,0 +1,62 @@ +//#define MUENCHEN +//#define MAGDEBURG +#define BREMEN + +#ifdef MUENCHEN +/* Muenchen */ +#define GEOXMIN 5295821.0 +#define GEOXMAX 5334858.0 +#define GEOYMIN 3233408.0 +#define GEOYMAX 3270042.0 +#endif + +#ifdef MAGDEBURG +/* Magdeburg */ +#define GEOXMIN 5305003.0 +#define GEOXMAX 5316797.0 +#define GEOYMIN 3682236.0 +#define GEOYMAX 3704266.0 +#endif + +#ifdef BREMEN +/* Bremen */ +#define GEOXMIN 5098053.0 +#define GEOXMAX 5134674.0 +#define GEOYMIN 3784147.0 +#define GEOYMAX 3819770.0 +#endif + +#define GEOXSIZE (GEOXMAX - GEOXMIN) +#define GEOYSIZE (GEOYMAX - GEOYMIN) + +#define PICXSIZE (2*768.0) +#define PICYSIZE (2*768.0) + +#include +#include + +int main( int args, char **argv) +{ + unsigned long pic[ (long)(PICXSIZE * (PICYSIZE+10)) ]; + char line[1024]; + int x, y; + + double xscale = (PICXSIZE / GEOXSIZE), + yscale = (PICYSIZE / GEOYSIZE); + double scale = xscale > yscale ? yscale : xscale; + + memset( pic, 0, sizeof( pic)); + + while( scanf( "%ld\t%ld\n", &x, &y) == 2) + { + double myx = x - GEOXMIN, myy = GEOYSIZE - (y - GEOYMIN); + if( (x < GEOXMAX) && (x >= GEOXMIN) && (y < GEOYMAX) && (y >= GEOYMIN)) + pic[ (long)(((long)(myx * scale)) + ((long)( myy * scale )) * (long)PICXSIZE) ]++; + } + + printf( "P5\n%ld %ld\n255\n", (long)PICXSIZE, (long)PICYSIZE ); + for( x = 0; x < PICXSIZE * PICYSIZE; x++) + putchar( sqrt( 32*256*256 * pic[ x ])); + + return 0; +} -- cgit v1.2.3