Exemplo n.º 1
0
static void
clipped_pl_fline_r( plPlotter *pl,
	double xmin, double xmax, double ymin, double ymax,
	double x0, double y0, double x1, double y1 )
{
	double xc0, yc0, xc1, yc1;
	bool_t accept;

	accept = cohen_sutherland( xmin, xmax, ymin, ymax,
		x0, y0, x1, y1, &xc0, &yc0, &xc1, &yc1 );

	if ( accept == TRUE )
		pl_fline_r( pl, xc0, yc0, xc1, yc1 );
}
Exemplo n.º 2
0
int main()
{
int n, i, j, ln[1][4], clip[4];
printf("Window coordinates (min, max): ");
scanf("%d %d %d %d", &clip[0], &clip[1], &clip[2], &clip[3]);
printf("Line coordinates: \n");
scanf("%d %d %d %d", &ln[0][0], &ln[0][1], &ln[0][2], &ln[0][3]);
initwindow(320, 240);
rectangle (clip[0], clip[1], clip[2], clip[3]);
for(i=0; i<n; i++)
line (ln[i][0], ln[i][1], ln[i][2], ln[i][3]);
getch();
cleardevice();
rectangle (clip[0], clip[1], clip[2], clip[3]);
for (i=0; i<n; i++)
{
cohen_sutherland (ln[i][0], ln[i][1], ln[i][2], ln[i][3], clip[0], clip[1], clip[2], clip[3]);
getch();
}
return 0;
}
Exemplo n.º 3
0
void main()
{
    int n;
    int i, j;
    int ln[MAX_LINES][4];
    int clip[4];
    int gd = DETECT, gm;
    
    //printf ("Enter the number of lines to be clipped: ");
    scanf ("%d", &n);
    
    //printf ("Enter the x- and y-coordinates of the line-endpoints:\n");
    for (i=0; i<n; i++)
        for (j=0; j<4; j++)
            scanf ("%d", &ln[i][j]);
        
        //printf ("Enter the x- and y-coordinates of the left-top and right-");
    //printf ("bottom corners\nof the clip window:\n");
    for (i=0; i<4; i++)
        scanf ("%d", &clip[i]);
    
    initgraph (&gd, &gm, NULL);
    
    rectangle (clip[0], clip[1], clip[2], clip[3]);
    for (i=0; i<n; i++)
        line (ln[i][0], ln[i][1], ln[i][2], ln[i][3]);
    sleep(2);
    cleardevice();
    rectangle (clip[0], clip[1], clip[2], clip[3]);
    for (i=0; i<n; i++)
    {
        cohen_sutherland (ln[i][0], ln[i][1], ln[i][2], ln[i][3],
                          clip[0], clip[1], clip[2], clip[3]);
        //sleep(3);
    }
    sleep(3);
    closegraph();
}