#include "TrueBASIC.h" void draw_axes(float xmin, float xmax, float ymin, float ymax); void draw_axes(float xmin, float xmax, float ymin, float ymax) { float dx, dy, tx, ty, x, x0, y, y0; int itick, ntick; // 目盛の数 ntick = 10; // dx は x 軸上の目盛の間隔 dx = (xmax - xmin)/ntick; // dy は y 軸上の目盛の間隔 dy = (ymax - ymin)/ntick; // window 文でマージン(縁)をとる GWindow(xmin - dx, ymin - dy, xmax + dx, ymax + dy); x0 = max(0, xmin); if(ymin*ymax < 0) y0 = 0; else y0 = ymin; GWline(xmin, y0, xmax, y0); // 水平軸 GWline(x0, ymin, x0, ymax); // 垂直軸 tx = 0.1*dy; // 目盛の大きさ ty = 0.1*dx; for(itick = 0; itick <= ntick; ++itick) { x = xmin + itick*dx; GWline(x, y0 - tx, x, y0 + tx); // x 軸に目盛を描く y = ymin + itick*dy; GWline(x0 - ty, y, x0 + ty, y); // y 軸に目盛を描く } }