「JavaScript/sagitta」の編集履歴(バックアップ)一覧に戻る

JavaScript/sagitta - (2015/02/25 (水) 17:30:08) のソース

|開発環境|メモ帳|
|実行環境|Internet Explorer 11|
#table_zebra(project, #fff, #eee)

http://www.maroon.dti.ne.jp/lance/js/sagitta.html

参考
[[円の弧長,弦長,矢高,半径のどれか2つを与えて残りを計算 - 高精度計算サイト>http://keisan.casio.jp/has10/SpecExec.cgi?path=09300000.%82%DD%82%F1%82%C8%82%CC%8E%A9%8D%EC%8E%AE%81i%90%94%8Aw%81j%2F04000000.%8D%82%93%99%90%94%8Aw%2F10000104.%89~%82%CC%8C%CA%92%B7%2C%8C%B7%92%B7%2C%96%EE%8D%82%2C%94%BC%8Ca%82%CC%82%C7%82%EA%82%A92%82%C2%82%F0%97%5E%82%A6%82%C4%8Ec%82%E8%82%F0%8Cv%8EZ%2Fdefault.xml]]

sagitta.html
#highlight(javascript){{
<!doctype html>
<head>
<title>sagitta</title>
<script>

function onKeyDown(event)
{
	if (event.keyCode == 13) {
		calc();
	}
}

function calc()
{
	var L = parseFloat(arc.value);	// 弧長
	if (isNaN(L) || L < 0 || 20000 < L) {
		output.innerHTML = "範囲は0~20000です。";
		return;
	}
	output.innerHTML = "";

	var td = 360 * L / 40000;
	var tr = Math.PI * td / 180;
	output.innerHTML += "中心角=" + td + "度<br>";

	var r = 40000 / (2 * Math.PI);
	output.innerHTML += "半径=" + r + "km<br>";

	var h = r * (1 - Math.cos(tr / 2));
	output.innerHTML += "矢高(円弧の高さ)=" + h + "km<br>";
}

</script>
</head>

<body>
地球を円周40,000kmの真球と仮定する。<br>
円弧の長さ<input id="arc" value=20 onkeydown="onKeyDown(event)" autofocus />km<br>
<button type="button" onclick="calc()">calc</button><br>
<div id="output"></div>
</body>
}}