node *matrixDraw(int row,int column) { GLfloatPoint point1,point2,point3; int i=0; node *head = gridDraw(row,column),*head1 = gridDraw(row,column); for(i=0;i<head->point.x;i++) { point1=popPoint(head); point2.x=point1.x ; point2.y=point1.y + heightOfOneGrid; point3.x=point1.x + widthOfOneGrid; point3.y=point1.y; drawLine(point1,point2); drawLine(point1,point3); glFlush(); } return head1; }
int main() { // Create a drawing grid struct winsize terminal; ioctl(STDOUT_FILENO, TIOCGWINSZ, &terminal); int w = terminal.ws_col, h = terminal.ws_row - 1; Grid grid = gridInit(w, h); Vector v1 = vectorMake(20, 0, 0); Vector v2 = vectorMake(0, 10, 0); Vector center = vectorMake((int)w/2, (int)h, 0); Vector zero = vectorMake(0, 0, 0); Vector v3 = vectorSubtract(v1, v2); // A mechanism for delay between draws struct timespec t; t.tv_sec = 0; //1; t.tv_nsec = 1000 * 1000 * 100; // Rotation int degrees = 0, x = 0, y = 0, z = 0; double radians; Vector v4; int test = 1; while (test) { // Calculations v4 = vectorRotate(v1, degrees); degrees += 6; // Erase the grid //grid = gridInit(w, h); // Draw a vector drawVectorAtOrigin(v4, center, grid); // Flush grid to the terminal gridDraw(grid); //v1.y++; nanosleep(&t, NULL); } return 0; }