(1)台形を描くプログラムを作成せよ.
#include <stdio.h>
#include "mogla.f" /* この行を忘れないこと */
void graphic(void)
{
double x1,x2,x3,x4,y1,y2;
gl_clearbuffer();
x1 = -50.0;
x2 = 50.0;
x3 = x1-50.0;
x4 = x2+50.0;
y1 = -100.0;
y2 = 100.0;
line(x1,y2,x2,y2,10);
line(x3,y1,x4,y1,10);
line(x1,y2,x3,y1,10);
line(x2,y2,x4,y1,10);
gl_flush();
}
void main()
{
gl_int(640, 480); /* 640*480ピクセルのウインドウを開く */
gl_displayfunc(graphic); /* 描画関数の呼び出し */
gl_loop(); /* 再描画処理 */
}
(2)y=xのグラフを描くプログラムを作成せよ.
#include <stdio.h>
#include "mogla.f" /* この行を忘れないこと */
void graphic(void)
{
gl_clearbuffer();
line(-320,0,320,0,10);
line(0,240,0,-240,10);
line(-320,-240,320,240,5);
gl_flush();
}
void main()
{
gl_int(640, 480); /* 640*480ピクセルのウインドウを開く */
gl_displayfunc(graphic); /* 描画関数の呼び出し */
gl_loop(); /* 再描画処理 */
}
(3)y=x2のグラフを描くプログラムを作成せよ.
#include <stdio.h>
#include "mogla.f" /* この行を忘れないこと */
#include <math.h>
void graphic(void)
{
double i;
gl_clearbuffer();
line(-320,0,320,0,10);
line(0,240,0,-240,10);
for(i=-320;i<640;i++){
pset(i,i*i*0.01,12);
}
gl_flush();
}
void main()
{
gl_int(640, 480); /* 640*480ピクセルのウインドウを開く */
gl_displayfunc(graphic); /* 描画関数の呼び出し */
gl_loop(); /* 再描画処理 */
}
(4)y=sin(x)とy=cos(x)のグラフを描くプログラムを作成せよ.
#include <stdio.h>
#include "mogla.f" /* この行を忘れないこと */
#include <math.h>
void graphic(void)
{
double i;
gl_clearbuffer();
line(-320,0,320,0,10);
line(0,240,0,-240,10);
for(i=-320;i<320;i++){
pset(i,100*sin(i/180*3.141592),12);
pset(i,100*cos(i/180*3.141592),13);
}
gl_flush();
}
void main()
{
gl_int(640, 480); /* 640*480ピクセルのウインドウを開く */
gl_displayfunc(graphic); /* 描画関数の呼び出し */
gl_loop(); /* 再描画処理 */
}
(5)sin.csvファイルを読み込んで,y=sin(x)のグラフを描くプログラムを作成せよ.
#include <stdio.h>
#include "mogla.f" /* この行を忘れないこと */
void graphic(void)
{
int i;
float sin[500];
FILE *fp;
fp=fopen("sin.csv","r");
if(fp==NULL){
printf("ファイルを開くことができませんでした.¥n");
return;
}
for(i=0;i<=360;i++){
fscanf(fp,"%f",&sin[i]);
}
fclose(fp);
gl_clearbuffer();
line(-320,0,320,0,10);
line(-100,240,-100,-240,10);
for(i=0;i<360;i++){
pset(i-100,100*sin[i],12);
}
gl_flush();
}
void main()
{
gl_int(640, 480); /* 640*480ピクセルのウインドウを開く */
gl_displayfunc(graphic); /* 描画関数の呼び出し */
gl_loop(); /* 再描画処理 */
}
(6)16×16の2次元配列に配色のデータを書いてあります.配列をファイルから読み込み, グラフィックスを用いて画面に表示するプログラムを作成せよ.
#include <stdio.h>
#include "mogla.f" /* この行を忘れないこと */
void graphic(void)
{
int i;
int color[256];
FILE *fp;
fp=fopen("graphics.txt","r");
if(fp==NULL){
printf("ファイルを開くことができませんでした.¥n");
return;
}
for(i=0;i<256;i++){
fscanf(fp,"%d",&color[i]);
}
fclose(fp);
gl_clearbuffer();
for(i=0;i<256;i++){
pset(i%16,i/16,color[i]);
}
gl_flush();
}
void main()
{
gl_int(640, 480); /* 640*480ピクセルのウインドウを開く */
gl_displayfunc(graphic); /* 描画関数の呼び出し */
gl_loop(); /* 再描画処理 */
}