/*
 EGGX を使ったサンプル
 はね返る四角を描く

 473088 榎田裕一郎
*/

#include <eggx.h>
#include <math.h>

int main() {
  int win, d;
  double r,x,y,dx,dy,w;

  printf("Direction? (0-360) : "); 
  scanf("%d",&d);

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

  r= 3.14159265 / 180.0 * d ;  /* radian 単位に変換 ( 30°は 1/6π ) */

  /* 四角の幅を設定 */
  w=20.0;
  /* 初期位置を 200, 200 に設定し、増分値を算出 */
  x=200.0;
  y=200.0;
  dx=w * 0.5 * sin(r);
  dy=w * 0.5 * cos(r);

  newpen(win, 1); /* 色を白に設定 */
  while(1) {
    if( (x<0.0)||((x+w)>400.0)||(y<0.0)||((y+w)>400.0) ) { /* 端に到達 */
      break; /* while ループから脱出 */
    };
    fillrect(win, x, y, w, w);
    x+=dx; y+=dy;
    usleep(50000); /* 少し待つ */
    gclr(win);     /* 画面を消去 */
  };

  drawstr(win,300.0,30.0,16,0.0,"FIN"); /* 300,30 の位置に 16 サイズの文字 */

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

  return(0);

}
  
