This is window-position.c in view mode; [Download] [Up]
/*
* $Id: window-position.c,v 1.5 89/11/28 16:01:02 gregc Exp $
*
* Copyright 1989 by the Regents of the University of California and
* the UCSF Computer Graphics Laboratory. All rights reserved.
* Freely redistributable.
*
* window-position: by Greg Couch, gregc@cgl.ucsf.edu, July 1989.
*
* Generate random window postions.
*/
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <nextdev/video.h>
extern int getpid(void);
extern int getopt(int, char **, char *), optind;
extern char *optarg;
int
main(argc, argv)
int argc;
char *argv[];
{
int c;
int along_line;
int h, v;
double t;
int lowerX, upperX, lowerY, upperY;
char *invoked_as;
if (argc <= 0) {
invoked_as = "???";
goto usage;
}
if ((invoked_as = strrchr(argv[0], '/')) != NULL)
invoked_as += 1;
else
invoked_as = argv[0];
along_line = 0;
while ((c = getopt(argc, argv, "l")) != EOF) switch (c) {
case 'l':
along_line = 1;
break;
default:
goto usage;
}
if (optind + 4 != argc) {
usage:
(void) fprintf(stderr,
"usage: %s [-l] lowerX upperX lowerY upperY\n",
invoked_as);
return 1;
}
lowerX = atoi(argv[optind + 0]);
upperX = atoi(argv[optind + 1]);
lowerY = atoi(argv[optind + 2]);
upperY = atoi(argv[optind + 3]);
if (lowerX < 0 || lowerX > VIDEO_W
|| upperX < 0 || upperX > VIDEO_W
|| lowerY < 0 || lowerY > VIDEO_H
|| upperY < 0 || upperY > VIDEO_H) {
(void) fprintf(stderr,
"%s: bounds must be between (0, 0) and (%d, %d)\n",
invoked_as, VIDEO_W, VIDEO_H);
return 1;
}
srand(getpid());
t = rand() / (double) RAND_MAX;
h = lowerX + t * (upperX - lowerX) + .5;
if (!along_line)
t = rand() / (double) RAND_MAX;
v = lowerY + t * (upperY - lowerY) + .5;
printf("-WinLocX %d -WinLocY %d\n", h, v);
return 0;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.