Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define __USE_BSD
- #define _USE_MATH_DEFINES
- #include <math.h>
- #include <time.h>
- #include <unistd.h>
- #include <GL/glut.h>
- void display(void) {
- int n = 50;
- glColor3f(0.0, 0.0, 0.0); // 図形の色の指定
- glClearColor(1.0, 1.0, 1.0, 1.0); // 背景色の指定
- // これまでfor文の外に書いていたglClearとglFlushを、for文の中に書くことで、
- // 画面のクリアと再描画が繰り返され、アニメーションが可能になる。
- for (double r = .5; r < 1.; r += .025) {
- double t = clock();
- for (;;) {
- if ((clock() - t) / 1000000 > .3) break;
- }
- glClear(GL_COLOR_BUFFER_BIT); // 画面をクリア。アニメーションのためfor文の中に。
- glBegin(GL_LINE_LOOP); // glVertex2dで指定した各座標を順に直線で結ぶ。
- // 最初と最後の座標の間にも線を引きループ状にする
- for (int i = 0; i < n; i++) {
- double rad = M_PI * i * 2 / n;
- glVertex2d(r * cos(rad), r * sin(rad));
- }
- glEnd();
- glFlush(); // 画面の描画、あるいは再描画。アニメーションのためfor文の中に。
- }
- }
- int main(int argc, char** argv) {
- glutInit(&argc, argv);
- glutInitWindowSize(400, 400); // ウィンドウサイズは400x400ドット
- glutInitWindowPosition(600, 300); // ウィンドウの表示位置の指定
- glutCreateWindow("simple");
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement