/*********************************************************************** FILE : accent.c This function puts a large X at the point designated by the parameters. ************************************************************************/ #include "isthdefs.h" accentpt(x,y) int x,y; { int i,j,size=10; for (i=x-size, j=y-size; i<=x+size; i++, j++) { if (VIS$GET_PIXEL(i,j) < 128) VIS$SET_PIXEL(i,j,255); else VIS$SET_PIXEL(i,j,0); } for (i=x-size, j=y+size; i<=x+size; i++, j--) { if (VIS$GET_PIXEL(i,j) < 128) VIS$SET_PIXEL(i,j,255); else VIS$SET_PIXEL(i,j,0); } } accenthoriz(x,y, color) int x,y, color; { int i,size=16; int values[256]; for (i=0;i<=2*size;i++) values[i] = color; VIS$WRITE_HORIZONTAL_LINE (x-size, y, 2*size, values); for (i=y-size; i <=y+size; i++) VIS$SET_PIXEL(x,i,color); #ifdef ROGER for (i=x-size; i <=x+size; i++) VIS$SET_PIXEL(i,y,color); #endif } cross_isthmus (x1, y1, x2, y2, color) int x1,y1,x2,y2,color; { int linex1, liney1; int linex2, liney2; int newx, newy, pslope, slope; int midx, midy, t, ax, ay; drawline (x1, y1, x2, y2, color); findmidpoint(x1,y1,x2,y2,&midx,&midy); /* printf ("x1 x2 y1 y2 midx midy %d %d %d %d %d %d \n",x1,y1,x2,y2,midx,midy); */ ax = -(y2 - y1); ay = x2 - x1; t = 4; newx = midx + t * (ax); newy = midy + t * (ay); getperpline (midx, midy, newx, newy, color, &linex1, &liney1); t = -4; newx = midx + t * (ax); newy = midy + t * (ay); getperpline (midx, midy, newx, newy, color, &linex2, &liney2); accenthoriz(linex1, liney1, 251); accenthoriz(linex2, liney2, 251); /* printf ("LINEX: %d LINEY: %d \n", linex2, liney2); */ } #ifdef ROGER rotate_line(x1,y1,x2,y2,midx, midy,theta, color) int x1,y1,x2,y2, midx, midy, color; float theta; { int i, length; float x,radeg; double cs,sn; float avgx [70]; float avgy [70]; radeg = (3.14 / 180.0) * theta; cs = cos((double)radeg); sn = sin((double)radeg); length = max (abs(x1-x2), abs(y2-y1)); for(i=1;i<=length;i++) { x = midx + (cs*(avgx[i] - midx)) - (sn*(avgy[i] - midy)); avgy[i] = midy + (sn*(avgx[i] - midx))+ (cs*(avgy[i] - midy)); avgx[i] = x; } for (i=1;i<=length;i++) VIS$SET_PIXEL ( (int)avgx[i], (int)avgy[i], color); } #endif