next up previous
Next: 参考プログラム Up: 3 VOGLE→EGGX プログラム書き換えマニュアル Previous: 3.8 move2() と draw2()

3.9 rdraw2(), rmove2()

VOGLE の rdraw2(), rmove2() の機能は割と標準的であり、 これらに対応する関数を含んでいる グラフィックス・ライブラリィは珍しくないですが、 EGGX/ProCALL には直接対応する関数はありません。

一つの解決手段は、次のようにペンの現在位置を覚えておく変数を用意して、 自分で rdraw2(), rmove2() を作ることです。

VOGLE の真似をする
/* ペンの現在位置を記憶しておく変数 */
double cur_x, cur_y;

void move2(double x, double y)
{
  eggx_line(win, x, y, PENUP);
  cur_x = x; cur_y = y;
}

void draw2(double x, double y)
{
  eggx_line(win, x, y, PENDOWN);
  cur_x = x; cur_y = y;
}

void rdraw2(double dx, double dy)
{
  draw2(cur_x + dx, cur_y + dy);
}

void rmove2(double dx, double dy)
{
  move2(cur_x + dx, cur_y + dy);
}




next up previous
Next: 参考プログラム Up: 3 VOGLE→EGGX プログラム書き換えマニュアル Previous: 3.8 move2() と draw2()
Masashi Katsurada
平成22年2月26日