11月20日課題

1:円を描く

int main(void) {
  int win;
  double y;
  double x;
  double rad;

  win=gopen(400,400); /* 描画ウィンドウを開く */
  winname(win, "sample 1"); /* 名前をつける */

  newpen(win, 1);
  line(win, 5.0, 200.0, PENUP);
  line(win, 395.0, 200.0, PENDOWN);
  line(win, 200.0, 5.0, PENUP);
  line(win, 200.0, 395.0, PENDOWN);
  newpen(win, 2);
  for(rad = -M_PI; rad <= M_PI;rad+=0.01){
   y = 190 * sin(rad);
   x = 190 * cos(rad);
   pset(win, x + 200.0,y + 200.0);
  }
  ggetch(); /* キー入力を待つ */
  gclose(win); /* 描画ウィンドウを閉じる */

  return 0;
}

2:sinカーブを描く(画面両端でy=0となるように)

int main(void) {
 int win;
 double y;
 double x = -190;
 double rad;

 win=gopen(400,400); /* 描画ウィンドウを開く */
 winname(win, "sample 1"); /* 名前をつける */

 newpen(win, 1);
 line(win, 5.0, 200.0, PENUP);
 line(win, 395.0, 200.0, PENDOWN);
 line(win, 200.0, 5.0, PENUP);
 line(win, 200.0, 395.0, PENDOWN);
 newpen(win, 2);

 for(rad = -M_PI; rad <= M_PI ; rad+= 0.01 ){
  y = 190 * sin(rad);
  x += 190 / (M_PI * 100);
  pset(win, x + 200.0, y + 200.0);
 }

 ggetch(); /* キー入力を待つ */
 gclose(win); /* 描画ウィンドウを閉じる */

 return 0;
}