やたー行数減ったよー\(^o^)/
ってことで飽きもせず焦点距離換算スクリプトです。
ついでに水平・垂直画角とかも出してみたり。
ってことで飽きもせず焦点距離換算スクリプトです。
ついでに水平・垂直画角とかも出してみたり。
例によって以下ソース。
<script type="text/javascript"><!--
function setting(){
var e = document.getElementById('slist').value;
var wid = new Array(23.6 , 22.2 , 28.7 , 17.3 , 6.9 , 5.7 , 17 , 42);
var hig = new Array(15.8 , 14.8 , 19.1 , 13 , 5.2 , 4.3 , 13 , 56);
document.getElementById('ww').value=wid[e-1];
document.getElementById('hh').value=hig[e-1];
}
function calcal(){
var h = document.getElementById('hh').value;
var w = document.getElementById('ww').value;
var f = document.getElementById('fcl').value;
var n = (Math.sqrt(w*w+h*h));
var b = (43.266/n);
var g = parseInt(b*f*10);
var cc = 2*Math.atan(n/(2*f));
var c = parseInt(cc*180/Math.PI);
var qq = 2*Math.atan(w/(2*f));
var q = parseInt(qq*180/Math.PI);
var rr = 2*Math.atan(h/(2*f));
var r = parseInt(rr*180/Math.PI);
document.getElementById('rst').value = g/10;
document.getElementById('hang').value = q;
document.getElementById('vang').value = r;
document.getElementById('aang').value = c;
}
function laclac(){
var h = document.getElementById('hh').value;
var w = document.getElementById('ww').value;
var ff = document.getElementById('rst').value;
var n = (Math.sqrt(w*w+h*h));
var b = (n/43.266);
var g = parseInt(b*ff*10);
var f = g/10;
var cc = 2*Math.atan(n/(2*f));
var c = parseInt(cc*180/Math.PI);
var qq = 2*Math.atan(w/(2*f));
var q = parseInt(qq*180/Math.PI);
var rr = 2*Math.atan(h/(2*f));
var r = parseInt(rr*180/Math.PI);
document.getElementById('fcl').value = f;
document.getElementById('hang').value = q;
document.getElementById('vang').value = r;
document.getElementById('aang').value = c;
}
//--></script>
<form style="background:#fafafa;">
<select name="fmat" id="slist" onchange="setting()">
<optgroup label="Digital">
<option value="1" name="aps">APS-C</option>
<option value="2" name="cps">APS-C(Canon)</option>
<option value="3" name="hps">APS-H</option>
<option value="4" name="fts">フォーサーズ</option>
<option value="5" name="118">1/1.8inch</option>
<option value="6" name="125">1/2.5inch</option>
</optgroup><optgroup label="film">
<option value="7" name="110">110判</option>
<option value="8" name="645">645判</option>
</optgroup></select><br />
縦<input type="text" size="8" name="hh" id="hh" value="15.8"></input>mm<br />
横<input type="text" size="8" name="ww" id="ww" value="23.6"></input>mm<br />
実焦点距離<input type="text" size="6" id="fcl" value=""></input>mm
<input type="button" value="計算!" id="cal" onclick="calcal()"></input><br />
135判換算<input type="text" size="7" name="rst" id="rst" value=""></input>mm
<input type="button" value="逆計算" id="cal" onclick="laclac()"></input><br />
水平画角<input type="text" size="8" name="hang" id="hang"></input>度 <br />
垂直画角<input type="text" size="8" name="vang" id="vang"></input>度 <br />
対角画角<input type="text" size="8" name="aang" id="aang"></input>度
</form>
要は配列使えばよかったのですね(´・ω・`)
