うしブログ

うしブログ

趣味で運営する、GeoGebraの専門ブログ。

(作業メモ)StartPoint要検証(2行の場合;テキスト変更時未定義問題)

テキストサイズを取得する

現在、GeoGebraには、テキストサイズを取得するメソッドが存在しないので、自作しました。

引数:サイズを取得したいテキストオブジェクトの名前(string)

戻り値:テキストサイズを表す文字列(string)

 

function getTextSize(objName){

// この関数は、GeoGebra バージョン 6.0.502.0-w (30 September 2018) を前提に設計しています。その後の仕様変更により、適切に動作しなくなる可能性があります。あらかじめご了承下さい。

	// テキストのxml中、'sizeM'というデータがサイズを表すため、それを数値として取得する。
	var xmlText = ggbApplet.getXML(objName);
	var indexOfsizeM = xmlText.indexOf('sizeM');
	if(indexOfsizeM == -1){
		return '小';
	}  // GeoGebraの仕様上、小(Small)のときはxmlにsizeMのデータがないため、ここで個別対応する。
	var startIndex = xmlText.indexOf('\"', indexOfsizeM) + 1;
	var endIndex = xmlText.indexOf('\"', startIndex);
	var sizeMText = xmlText.slice(startIndex, endIndex);
	var sizeM = eval(sizeMText);

	// sizeMに応じて、テキストサイズを表すstringを返す。
	var ary = [
		[0.5, 0.7, 1.4, 2, 4, 8],
		['微小', '特小', '中', '大', '特大', '巨大']	
	]
	return ary[1][ary[0].indexOf(sizeM)];
}

 

使用例