2021-10-11 18:37:13 -03:00

122 lines
3.0 KiB
C

#ifndef lint
static char sccsid[] = "@(#)tst9.c 1.1 94/10/31 Copyr 1984 Sun Micro";
#endif
#include "cgidefs.h"
#include <math.h>
Cvwsurf device1;
Cvwsurf device2;
main(argc, argv) int argc; char *argv[];
{
char *surface_string;
int surface, linetype_int;
Cint radius;
Cfloat linewidth;
Clintype linetype;
Ccoor c1,c2,c3;
Cint name;
double pi = 3.14159265358, start, end;
if (argc < 7) {
printf (" ... format: surface radius start end linetype linewidth\n");
exit(1);
}
surface_string = argv[1];
if (!strcmp(surface_string,"cg1dd"))
surface = CG1DD;
else if (!strcmp(surface_string,"bw1dd"))
surface = BW1DD;
else if (!strcmp(surface_string,"bw2dd"))
surface = BW2DD;
else if (!strcmp(surface_string,"pixwindd"))
surface = PIXWINDD;
else if (!strcmp(surface_string,"cgpixwindd"))
surface = CGPIXWINDD;
else {
printf (" ... invalid surface name ... exitting\n");
exit(1);
}
radius = atoi(argv[2]);
start = atof(argv[3]) * pi;
end = atof(argv[4]) * pi;
linetype_int = atoi(argv[5]);
if (linetype_int == 0)
linetype = SOLID;
else if (linetype_int == 1)
linetype = DASHED;
else if (linetype_int == 2)
linetype = DOTTED;
else if (linetype_int == 3)
linetype = DASHED_DOTTED;
else if (linetype_int == 4)
linetype = DASH_DOT_DOTTED;
linewidth = atof(argv[6]);
open_cgi();
device1.dd=surface;
open_vws(&name,&device1);
/* if ( (surface == CG1DD) || (surface == CGPIXWINDD) )
clear_view_surface(name,ON,147); */
line_type(linetype);
line_width(linewidth);
line_color(25);
c1.x = 8192;
c1.y = 8192;
c2.x = c1.x + radius*cos(start);
c2.y = c1.y + radius*sin(start);
c3.x = c1.x + radius*cos(end);
c3.y = c1.y + radius*sin(end);
circular_arc_center(&c1,c2.x,c2.y,c3.x,c3.y,radius);
line_type(linetype);
line_width(linewidth);
line_color(195);
c1.x = 8192;
c1.y = 24576;
c2.x = c1.x + radius*cos(start);
c2.y = c1.y + radius*sin(start);
c3.x = c1.x + radius*cos(end);
c3.y = c1.y + radius*sin(end);
circular_arc_center(&c1,c3.x,c3.y,c2.x,c2.y,radius);
line_type(linetype);
line_width(linewidth);
line_color(25);
c1.x = 24576;
c1.y = 8192;
c2.x = c1.x + radius*cos(start);
c2.y = c1.y + radius*sin(start);
c3.x = c1.x + radius*cos(end);
c3.y = c1.y + radius*sin(end);
circular_arc_center(&c1,c2.x,c2.y,c3.x,c3.y,radius);
line_color(195);
/* c1.x = 24576; */
/* c1.y = 8192; */
circular_arc_center(&c1,c3.x,c3.y,c2.x,c2.y,radius);
line_type(linetype);
line_width(linewidth);
line_color(25);
c1.x = 24576;
c1.y = 24576;
c2.x = c1.x + radius*cos(start);
c2.y = c1.y + radius*sin(start);
c3.x = c1.x + radius*cos(end);
c3.y = c1.y + radius*sin(end);
circular_arc_center(&c1,c2.x,c2.y,c3.x,c3.y,radius);
line_color(195);
/* c1.x = 24576; */
/* c1.y = 24576; */
circular_arc_center(&c1,c3.x,c3.y,c2.x,c2.y,radius);
sleep(100000);
close_cgi();
}