function getTextWidth(textToMeasure){
ggbApplet.evalCommand('USITEXT=\"'+textToMeasure+'\"');
var actualWidth = ggbApplet.getValue('x(Corner[USITEXT, 2]) - x(Corner[USITEXT, 1])');
var ratio = ggbApplet.getValue('(x(Corner[5]) + 2) / (x(Corner[2]) - x(Corner[1]))');
var textWidth = actualWidth*ratio;
ggbApplet.deleteObject('USITEXT');
return textWidth;
}
使い方の例
GeoGebra側で、フォントサイズ16pt、テキストサイズ「小」に設定しているときに、
getTextWidth('うしうし');
を実行すると、この関数は、数値70を返す。
これは、GeoGebraで、上記設定のもとで、テキストオブジェクト
text1 = "うしうし"
を作成して、そのテキストの幅のピクセル数を測定すると、70ピクセルあることを示している。
(参考)既存のテキストオブジェクトの幅ピクセルを測定する
function getTextObjWidth(textObjName){
var actualWidth = ggbApplet.getValue('x(Corner['+textObjName+', 2]) - x(Corner['+textObjName+', 1])');
console.log(actualWidth);
var ratio = ggbApplet.getValue('(x(Corner[5]) + 2) / (x(Corner[2]) - x(Corner[1]))');
console.log(ratio);
var textWidth = actualWidth*ratio;
return textWidth;
}