Language: C++

//
// Analog Clock
//
#include <GL/glut.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <string.h> 
#include <unistd.h>


void Display(void);
void Reshape(int,int);
void Keyboard(unsigned char, int, int);
void Timer(int);
void PrintText(int, int, char *);

char xmessage[100];
char vmessage[100];
char amessage[100];
char ohara[]="x: ";
char simizu[]="v: ";
char yokooozi[]="a: ";

double Time=90;
int ls, lm, lh; // Length of Needle
int xs, ys;	// Second Hand Coordinate
int xm, ym;	// Minute Hand Coordinate
int xh , yh;	// Second Hand Coordinate
int xc, yc;	// Center Coordinate
double xd, yd;	// Scale of Panel
int ld;		// Radius of Panel
int ld0;	// Radius of Panel Indicate
int tmp[360][2];
double theta;	// Angle
int i ;		// Loop Counter
double tmpx,tmpy;
double maxy=0,miny=1e9;
char wt[20];

int main(int argc, char **argv)
{
	glutInit(&argc, argv);
	glutInitWindowSize (450, 300);
	glutCreateWindow("takeuti");
	glutDisplayFunc(Display);
	glutKeyboardFunc(Keyboard);
	glutReshapeFunc(Reshape);
	glutTimerFunc (1, Timer, 0);
	glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
	glClearColor(0.5, 0.0, 1.0, 1.0);

	glutMainLoop();

	return(0);
}


//
// Update Window Display
//
void Display(void)
{

	ls = 129;
	lm = 120;
	lh = 90;
	ld = ls + 10;
	ld0 = ls-10;

	xc = 150;
	yc = 150;

// Getting Current Time
//	time(&tt);
//	ts = localtime(&tt);
//	 It's 10:40:20 ,now.
	
	// Window Title
	glutSetWindowTitle(wt);

	// Bachground Paint
	glClear(GL_COLOR_BUFFER_BIT);





// Watch face
	for (i = 0 ; i < 360 ; i++)
	{
		theta = 2.0 * M_PI * (double)i / 360.0;
		xd = xc + (int)(ld * sin(theta));
		yd = yc - (int)(ld * cos(theta));
		
		glPointSize (5.0);
		
		tmp[i][0] = xd;
		tmp[i][1] = yd;
		if(maxy < yd) {
			maxy = yd;
		}
		if(miny > yd) {
			miny = yd;
		}
		
	}
	glLineWidth(3.0);
	glBegin(GL_LINE_LOOP);
	for(i = 0; i < 360; i++) {
		glVertex2i(tmp[i][0], tmp[i][1]);
	}

	glEnd();




	glBegin(GL_LINES);
	glVertex2i(340,miny);
	glVertex2i(340,maxy);
	glEnd();
	// Needle
	// Second
	glColor3ub (255, 255, 255);
	theta = M_PI * (double) Time / 180.0;
	double Theta = theta - (M_PI/2);
	tmpx = xc + (int)(ld * sin(theta));
	tmpy= yc - (int)(ld * cos(theta));
	glColor3ub (220 , 220, 220);
	glPointSize(10.0);
	glBegin(GL_POINTS);
	glVertex2d(tmpx , tmpy);
	glVertex2d(340 ,tmpy);
	glEnd();
	printf("x = %d : ",(int)(ld * M_PI * sin(Theta)));
	printf("v = %d : ",(int)(ld * M_PI * cos(Theta)));	
	printf("a = %d\n ",(int)((-1) * ld * M_PI * M_PI * sin(Theta)));
//うおおおおおおおおおおおおおおおおおおおおおaaaaaaaaaaaaaaaaaaaaaaaa

int kura,moto,atu;
kura=(int) 150-tmpy;
moto=(int)(ld * M_PI * cos(theta));
atu=(int)((-1) * ld * M_PI * M_PI * sin(theta));

snprintf(xmessage, 100, "%d",kura);
snprintf(vmessage, 100, "%d",moto);
snprintf(amessage, 100, "%d", atu);

//glClear(GL_COLOR_BUFFER_BIT);

	glColor3ub(255, 200, 200);

PrintText(355, 50, ohara);
	PrintText(375, 50, xmessage);

PrintText(355, 140, simizu);
PrintText(375, 140, vmessage);

PrintText(355, 230, yokooozi);
PrintText(375, 230, amessage);


//いやあああああああああああああああああaaaaaaaaaaaaaaaaaaaaaaaaa


	if(Time == 0) {
		Time = 360;
	}else{
		Time-=0.08;
	}
	// Finish
	glFlush();



	glutSwapBuffers();
}


// Reset Coordinate if occurs Window Resizing
//
void Reshape(int w, int h)
{
	glViewport(0, 0, w, h);
	glMatrixMode(GL_MODELVIEW) ;
	glLoadIdentity();
	gluOrtho2D(0 , w, 0, h);
	glScaled(1, -1, 1);
	glTranslated(0, -h, 0);
	glutReshapeWindow(450, 300); // Window Size Fixing
}

// Timer Interrupt
void Timer(int value)
{
	glutPostRedisplay();
	glutTimerFunc(1, Timer, value);
}
void Keyboard(unsigned char key, int x, int y)
{
	if ((key == 'q') || (key == 27))
	{
		printf("Finished\n");
		exit(0);
	}
}

void PrintText(int x, int y, char *s)
{
	int i , l;


	glRasterPos2i(x , y);

	l = strlen(s);


	for (i = 0 ; i < l ; i++)
	{
		glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, s[i]);
	}
}


Compiler output:
a.cc:4:10: fatal error: GL/glut.h: No such file or directory
    4 | #include <GL/glut.h>
      |          ^~~~~~~~~~~
compilation terminated.