This is generator.c in view mode; [Download] [Up]
#import <stdio.h>
#import <math.h>
void printBaseScene(FILE* output, double x, double y, double z, double angle)
{
fprintf(output, "v\nfrom %f %f %f\nat 0 0 0\nup 0 0 1\n", x, y, z);
fprintf(output, "angle %f\n", angle);
fprintf(output, "hither 1\nresolution %d %d\n", RESOLUTION, RESOLUTION);
fprintf(output, "b SkyBlue\nl 4 3 2\nl 1 -4 4\nl -3 1 5\n");
fprintf(output, "f yellow_green 1 0 0 0 0\np 4\n 12 12 -.5\n-12 12 -.5\n-12 -12 -.5\n 12 -12 -.5\n");
fprintf(output, "f SteelBlue .5 .5 3 0 0\ns 0.000 -1.000 0.000 0.5\ns 0.866 0.500 0.000 0.5\ns -0.866 0.500 0.000 0.5\n");
}
void printScene(FILE *output, int frameNum)
{
if (frameNum < 30) /* zoom in by narrowing focus */
{ double angle;
angle = ((double)(frameNum - 30) * (float)(frameNum - 30) * 46.5L / 900.0L) + 3.5L;
printBaseScene(output, 0.0L, 25.0L, 10.0L, angle);
}
else /* spin around 360 degrees */
{ double angle, x, y;
angle = (double)(frameNum - 30) * 6.28L / 30.0L; /* scale to 2Pi */
x = sin(angle) * 25.0L;
y = cos(angle) * 25.0L;
printBaseScene(output, x, y, 10.0L, 3.5L);
}
}
main()
{
FILE *theFile;
char filename[16];
int i;
for (i=0; i<60; i++)
{
sprintf(filename, "%d", i);
strcat(filename, ".nff");
theFile = fopen(filename, "w");
printScene(theFile, i);
fclose(theFile);
}
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.