diff options
Diffstat (limited to 'generator/pgmramp.c')
-rw-r--r-- | generator/pgmramp.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/generator/pgmramp.c b/generator/pgmramp.c index 92bba142..db32b9f0 100644 --- a/generator/pgmramp.c +++ b/generator/pgmramp.c @@ -111,12 +111,23 @@ parseCommandLine(int argc, char ** argv, +static int +diffu(unsigned int const subtrahend, + unsigned int const subtractor) { + + return (int)subtrahend - (int)subtractor; + + /* (Not the conventional terminology, but better) */ +} + + + int main(int argc, char *argv[]) { struct cmdlineInfo cmdline; gray *grayrow; - int rowso2, colso2; + unsigned int rowso2, colso2; unsigned int row; pgm_init( &argc, argv ); @@ -149,15 +160,15 @@ main(int argc, char *argv[]) { MAX((float) cmdline.cols + cmdline.rows-2, 1); break; case RT_RECT: { - float const r = fabs((float)(rowso2 - row)) / rowso2; - float const c = fabs((float)(colso2 - col)) / colso2; + float const r = fabs((float)diffu(rowso2, row)) / rowso2; + float const c = fabs((float)diffu(colso2, col)) / colso2; grayrow[col] = cmdline.maxval - (r + c) / 2.0 * cmdline.maxval; } break; case RT_ELLIP: { - float const r = fabs((float)(rowso2 - row)) / rowso2; - float const c = fabs((float)(colso2 - col)) / colso2; + float const r = fabs((float)diffu(rowso2, row)) / rowso2; + float const c = fabs((float)diffu(colso2, col)) / colso2; float const v = MAX(0.0f, MIN(1.0f, SQR(r) + SQR(c))); grayrow[col] = cmdline.maxval - v * cmdline.maxval; |