Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <limits.h>
- #include <time.h>
- #include <GL/glut.h>
- void display(void) {
- double x[8]; // x座標の値を入れる変数
- double y[8]; // y座標の値を入れる変数
- srand((unsigned int) time(NULL));
- //乱数を用いて棒を8本作る
- for (int i = 0; i < 8; i++) {
- //x座標は0.2刻み
- x[i] = -0.8 + 0.2 * i;
- //y座標は乱数
- y[i] = (double) (rand() % 20 + 1) / 10 - 1;
- }
- int min = 0;
- int max = 0;
- double min_value = y[min];
- double max_value = y[max];
- for (int i = 0; i < 8; i++) {
- if (min_value > y[i]) {
- min = i;
- min_value = y[i];
- }
- if (max_value < y[i]) {
- max = i;
- max_value = y[i];
- }
- }
- glClear(GL_COLOR_BUFFER_BIT);
- glClearColor(1.0, 1.0, 1.0, 1.0); // 背景色の指定
- for (int i = 0; i < 8; i++) {
- // glBeginとglEndの間で座標を指定する。
- // 座標を指定するには、『glVertex(x座標, y座標);』と書く。
- if (i == min) {
- glColor3d(1., 0., 0.);
- }
- else if (i == max) {
- glColor3d(0., 0., 1.);
- }
- else {
- glColor3d(0., 0., 0.);
- }
- glBegin(GL_LINES); // 線を描く場合はGL_LINESと書く。
- glVertex2f(x[i], -1.0); // 画面最下部から(x[i], y[i])まで
- glVertex2f(x[i], y[i]); // 垂直な線を引く
- glEnd();
- }
- glColor3d(0., 1., 0.);
- glBegin(GL_LINES);
- glVertex2d(-1., (max_value + min_value) / 2);
- glVertex2d(1., (max_value + min_value) / 2);
- glEnd();
- glFlush();
- }
- int main(int argc, char** argv) {
- glutInit(&argc, argv);
- glutInitWindowSize(400, 400); // ウィンドウサイズは400x400ドット
- glutInitWindowPosition(600, 300); // ウィンドウの表示位置
- glutCreateWindow("simple");
- // フォーカスを変えずにすむように
- // printf("開始します。何かキーを押してください。");
- // getchar();
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement