// PROGRAM circle #include "TrueBASIC.h" int main(); void compute_aspect_ratio(float r, float *x, float *y); int main() { float r, xwin, ywin; GWopen(0); r = 1; // 円の半径 compute_aspect_ratio(r, &xwin, &ywin); GWindow(-xwin, -ywin, xwin, ywin); GWsetpen(BLUE, -1, -1, -1); GWellipse(-r, -r, r, r); // 円を描く GWquit(); return 0; } void compute_aspect_ratio(float r, float *x, float *y) { int px, py; float aspect_ratio, m, size; m = 0.1f*r; // 縁をつける size = r + m; // px, py: 水平方向と垂直方向のピクセル数 GWsize(2, &px, &py); if(px > py) { aspect_ratio = (float)px/py; (*x) = aspect_ratio*size; (*y) = size; } else { aspect_ratio = (float)py/px; (*x) = size; (*y) = aspect_ratio*size; } }