###前提・実現したいこと
紙に書いた数式をコード上で書き起こし、正確な値を得ることです。
###発生している問題・エラーメッセージ
エラーメッセージはありません。
数式には交換法則がありますが、それに従って違った書き方の同じ数式を書くと、中身は同じはずなのに全く違った値になります。
また、正しい値(補足参照)が得られません。
下記のc1rの数式がそれです。
###該当のソースコード
Java
1k1a = (winH * 253) / (winW * 246);//k = 項 2 k2a = winW / 4; 3 k3a = -1.0f; 4 k4a = ((winW * 0.8105067459f) / 4); 5 k5a = winW * 0.1473648629f; 6 k6a = winH / 8; 7 k7a = ((winH * 5) / 6); 8 k8a = ((winH * 253) / 328); 9 bsa = Math.abs((k1a * k2a) + (k3a * (k4a + k5a - k6a)) + k7a - k8a);//一つ目の書き方 10 c1r = (float)(bsa / (Math.sqrt(Math.pow(k1a, 2) + Math.pow(k3a, 2)))); 11 c1r = (float)((Math.abs(((winH * winW * 253) / (winW * 4 * 246)) + (-1) * (((winW * 0.8105067459f) / 4) + (winW * 0.1473648629f) - (winH / 8)) + ((winH * 5) / 6) - ((winH * 253) / 328))) / (Math.sqrt(Math.pow(((winH * 253) / (winW * 246)), 2) + Math.pow(-1, 2))));//二つ目の書き方
###試したこと
交換法則に従い順番を変えてみました。
###補足
このc1rは円の半径に用いていて、上記のコードには載せていない直線と接するかで正しい値が得られているかを判断しています。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/29 09:01
2017/03/29 09:04
2017/03/29 09:06
2017/03/29 09:15