サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
困ってます

欠円の計算で高さを求めたい

2011/01/19 19:21

欠円(割円)の計算で面積Aと半径rが判っているのですが
それから高さHを求める式があれば教えてください

質問者が選んだベストアンサー

ベストアンサー
2011/01/20 12:04
回答No.5

回答(3)です。

後記のPerlスクリプト(力技)で、
半径r=10,面積=100→高さh=18.18652225
半径r=10,面積=300→高さh= 7.10505817
と求めることができました。

一発で求めるスマートな式もあるはずですが、私では力不足です。

------------------------------
use strict;
use warnings;
my $r = 10; # 円の半径
my $a_a = 100; # 欠円の面積
my $pi = 3.141592653;
if($a_a <= 0 or $pi * $r**2 < $a_a){
die"a_a range error\n";
}elsif($a_a < $pi * $r**2 / 2){
my($h_min, $h_max) = (0, $r);
my $h;
while(1){
$h = ($h_min + $h_max) / 2;
# 円の面積
my $a_1 = $pi * $r**2;
# 扇形の面積
my $a_2 = $a_1 * (2 * atan2(sqrt($r**2 - ($r - $h)**2), $r - $h)) / (2 * $pi);
# 3角形の面積
my $a_3 = sqrt($r**2 - ($r - $h)**2) * ($r - $h);
# 欠円の面積
my $a_4 = $a_2 - $a_3;
if($a_a - 0.0000000001 < $a_4 and $a_4 < $a_a + 0.0000000001){
last;
}elsif($a_4 < $a_a){
$h_min = $h;
}else{
$h_max = $h;
}
# print"h_temp = $h\n";
}
print"h = $h\n";
}else{
my($h_min, $h_max) = ($r, $r * 2);
my $h;
while(1){
$h = ($h_min + $h_max) / 2;
# 円の面積
my $a_1 = $pi * $r**2;
# 扇形の面積
my $a_2 = $a_1 * (2 * $pi - 2 * atan2(sqrt($r**2 - ($h - $r)**2), $h - $r)) / (2 * $pi);
# 3角形の面積
my $a_3 = sqrt($r**2 - ($h - $r)**2) * ($h - $r);
# 欠円の面積
my $a_4 = $a_2 + $a_3;
if($a_a - 0.0000000001 < $a_4 and $a_4 < $a_a + 0.0000000001){
last;
}elsif($a_4 < $a_a){
$h_min = $h;
}else{
$h_max = $h;
}
# print"h_temp = $h\n";
}
print"h = $h\n";
}
------------------------------

訂正です。
(誤)------
半径r=10,面積=100→高さh=18.18652225
半径r=10,面積=300→高さh= 7.10505817
----------
(正)------
半径r=10,面積=100→高さh= 7.10505817
半径r=10,面積=300→高さh=18.18652225
----------

Excelのソルバーを自前でやるようなものです。
ソルバーだと収束しないことがありますが、上記ですと確実に追い込めれます。

お礼

2011/01/20 12:30

プログラムを組んでやるものでしょうか
私ではよく理解できませんが、内の技術員にこの内容を見せて
やってもらおうと思います
大変有難うございました

noname#230358 質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (6件中 1~5件目)

2011/01/21 02:20
回答No.6

お恥ずかしい話ですが、今回は確認をしておきました。
赤面の至りですが、兼好法師によれば恥をかいて上達するものだそうです。

公式A=(1/2){rL-C(r-H)}
を角度をラジアンで表しΦ、半径をRとすると
A={(R^2)/2}*(ΦーsinΦ)つまり
(2A/R^2)=ΦーsinΦ

ここで、
 cos(Φ/2)=1-H/R です。
アーク・コサイン ACOSという関数をつかうと
   Φ/2=ACOS(1-H/R)
Φ=2*ACOS(1-H/R)

なので
 2A/(R^2)= {2*ACOS(1-H/R)}-sin{2*ACOS(1-H/R)

これは、エクセルで計算できます。計算法は
(A,1):2A/(R^2),(A,2):計算用の数値
(B,1): H, (B,2):計算用のHの数値
(C,1): R, (C,2):計算用のRの数値
(D,1): 1-H/R, (D,2): =1-(B,2)/(C,2)
(E,1): 2*ACOS(1-H/R)}, (E,2): =2*ACOS(D,2)
(F,1): sin{2*ACOS(1-H/R), (F,1): =sin(E,2)
(G,1): {2*ACOS(1-H/R)}-sin{2*ACOS(1-H/R), (G,2): =(E,2)-(F,2)

ACOS アークコサインはエクセルの中にあります。
適当なHを与えて、計算された(G,2)と(A,2)を比較して
その差が十分小さくなれば計算終了です。

念のために、
H=10,R=10
H=0,R=10を計算して確認しております。
さらに、A=100,R=10のとき、H=7.10506
を確認しております。R>Hなので矛盾はありません。

A=300、R=10としますと、元の円の面積はπR^2=314
で半円の面積は157です。
半円より大きな欠円にも当てはまる式かどうかの確認
ができていません。

どうやら間違ったことを以前に書いたので、気になって仕方が
ありませんでした。お詫びして訂正します。
   

お礼

2011/01/21 10:31

訂正有難うございます
先に書かれています計算ループプログラムと今回のexcel用のを参考にして
excelでできるように作ってみます

皆様の回答有難うございました

noname#230358 質問者
2011/01/20 11:15
回答No.4

面積(A)は公式よりA=(1/2){rL-C(r-H)}
L(扇部分の円弧の長さ)=(rθπ)/180
C(円と直線が交わったところの長さ)
θ(扇形の角度)
*************************************************
ご質問内容が分かったので計算してみました。
面倒なので角度をラジアンで表し、Φ=θπ/180 とすると、

その結果、A=(1/2)[(r^2)Φ-2{sin-(C/2r)}(r-H)]・・(1)
ただし、sin-(C/2r)はアーク・サインと読みますが
  sinΦ=(C/2r)を満たす角度で、電卓で計算できます。

問題は、(1)式をご覧になればわかるように、
半径r、高さH、がわかっただけでは面積Aが決まらないことです。

逆に言えば、面積Aと半径rの二つから、高さHは決まりません。
・・・・決める式は存在しません。

もうひとつの情報、
角度θ(Φ)とか、弦の長さCとか、弧の長さL、とか
がないと欠円の寸法が決まりません。

お礼

2011/01/20 12:28

有難うございました

noname#230358 質問者
2011/01/20 08:40
回答No.3

>欠円(割円)の計算で面積Aと半径rが判っているのですが
>それから高さHを求める式があれば教えてください

下図で考えれば良いのでしょうか?
-----
http://www.jpdo.net/link/1/img/16871.jpg
-----

お礼

2011/01/20 08:44

図解ありがとうございます
図面の通りです
Hを求める式がわかりましたら、宜しくお願いします

noname#230358 質問者
2011/01/20 05:15
回答No.2

高さHを求めたいとのことですが、平面図形についてのお問い合わせでしょうか。
あるいは、#1さんご回答のように立体を想定なさっているのですか?


欠円の弦と弧の長さ、面積の関係などについては、ざっくり検索したところ
以下のような情報が引っかかりました。これらは、平面図形の場合です。

http://qanda.rakuten.ne.jp/qa2156315.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1041452565

お礼

2011/01/20 08:41

有難うございました
欠円の弧か弦の質問がでていましたのを確認しました
面積と円の半径しかわからない状態から、弧か弦がわかれば
高さが導けそうです
excelでゴールシークかソウバーでできると書いてあるので、試してみます

noname#230358 質問者
2011/01/19 20:33
回答No.1

欠円というのがよく分からないのですが、半径rの円から
扇形をのぞいたものですか?
これから作った三角錐の高さHを求めればよいのですか?

それなら扇形の角度をθ(ラジアン)とすれば、
円の面積πr^2 から扇形の面積(πr^2)(θ/2π)を引く。

そうするとA=πr^2-(πr^2)(θ/2π)
      =πr^2 {(2π-θ)/2π}
      =r^2 {(2π-θ)/2}


Aとrは分かっているので、θ=2πー2A/(r^2)

三角錐の底面は円ですが、この円の周囲Lは元の円の周囲から扇形
の弧の部分を除いたものですから、
L=2πr-rθ=r(2π-θ)
これから、この円の半径をRとすると
  L=2πR
  R=L/(2π)=r{(2πーθ)/(2π)}

三角錐を真横から見れば、高さH、底辺R、斜辺rの直角三角形。

従って、r^2=R^2+H^2

  H^2=r^2-R^2
     =r^2 [1-{(2πーθ)/(2π)}^2 ]

H= r √ [1-{(2πーθ)/(2π)}^2 ]





 

補足

2011/01/20 08:24

回答ありがとうございました
欠円と書いたのは、扇形から三角形となる部分を除いたもので
円に直線を1本引いたとして、その線と円で区切られた部分の面積と半径が
判っている場合に円と直線までの高さHを求める方法がわからなかったのです
面積(A)は公式よりA=(1/2){rL-C(r-H)}
L(扇部分の円弧の長さ)=(rθπ)/180
C(円と直線が交わったところの長さ)
θ(扇形の角度)
上記のように本に計算式がでていますが、面積が変わった時のHを求めたいのです
実際には円筒のものから、バランス加工の為に一部分を削除したいので高さが必要になります
説明が足りませんでした、宜しくお願いします

noname#230358 質問者

関連するQ&A

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。