数値をコメント文字列”XXXXX="の直後に記載 g_printするには
どうしたらよいでしょうか?
具体てきには
static char s[100];
static double ep,elr,el,ne;
g_print(185,970,"[mm]:");//コメント文字列
g_print(-1,-1," pix.pitch="); g_print(-1,-1, gcvt(ep,5,s));
pix.pitch= とepの数値0.312の間は8字分あり、
ところが
g_print(200,60,"Cyan-line:dis.matched to lens pitch[thick/ni/(1-lp/(ne*ep))]=");
g_print(-1,-1, gcvt(pitxme,3,s));
あるいは
gcvt(pitxme,3,s); g_print(-1,-1,("%5f",s));
で
/(1-lp/(ne*ep))]= とsの数値602の間は14字分あり、
コメント文字列と数値の間を任意に縮めたいのですが
どのようにしたらよいでしょうか?
g_print(200,60 のように位置指定をするのは避けて、文字列を継続して記載する g_print(-1,-1, を使いたい。
先の環境はWindowsXP VC6.0 でglut32.dllを使用しています
失礼しました。g_print( )の関数を以下のようになっていました。
すごく 入り組んでいます
void g_print( int xc, int yc, char *str)
{
static int oxc, ycc;
int xcc;
if(xc!= -1){ xcc=oxc=xc; ycc=yc;
}
else if(xc== -1){ xcc=oxc; }
cmov2( xcc, ycc); charstr(str);
oxc=oxc+ strlen(str)*13.2; //ここで長さが決まっているのかな?
}
#define cmov2(x, y) glRasterPos2f(x, y)
void charstr(char *str)
{
int len = strlen(str);
int i;
for (i=0; i<len; i++)
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, str[i]);
}
void g_print( int xc, int yc, char *str)
{ の中の
oxc=oxc+ strlen(str)*13.2; //ここで長さが決まっているのかな?
}
の乗数で決めているのですが、これはScreen pixel解像度によって、最適値(一文字あたりのpixel値)がことなるために、すこし余裕があると 事前のコメント文字列が長い場合には空白が長くなる。
今1280x1024 SXGAとするとして 12.3としておきました。
そして、長いコメント文字列を避けるように、分割した表示にしました
g_print(200,60,"Cyan line:");//2011 correct
g_print(-1,-1, gcvt(pitxme,3,s));
g_print(-1,-1,"=dis.matched to lens pitch[thick/ni/(1-lp/(ne*ep))]");//2011 correct
もっとスマートなコードがあるかもしれませんが、原因と処理がわかりました
関心持っていただいた方には感謝します
ツイート | ![]() |