算額(その781)
福島県白河市南湖 南湖神社 昭和58年(1983)
http://www.wasan.jp/fukusima/nanko.html
団扇の中に,2 個の大円が交差し,中円 3 個と小円 5 個が入っている。小円の直径が与えられたとき,団扇の直径を求めよ。
中円の中心点は団扇の直径の上にある。
中円の半径と中心座標を r2, (0, 0), (2r2, 0) とすれば,
大円の半径と中心座標は 2r2, (r2, 0), (-r2, 0)
団扇の半径と中心座標は 3r2, (0, 0) である。
小円の半径と中心座標を r3, (x3, y3)
とおき,以下の連立方程式を r2 を変数のまま解く。
include("julia-source.txt");
using SymPy
@syms r1::positive, r2::positive, r3::positive, x3::positive, y3::positive
R = 3r2
r1 = 2r2
eq1 = (x3 + r2)^2 + y3^2 - (r1 + r3)^2
eq2 = (2r2 - x3)^2 + y3^2 - (r2 + r3)^2
eq3 = r2^2 + (R - r3)^2 - (r1 + r3)^2
res = solve([eq1, eq2, eq3], (r3, x3, y3))[1]
(3*r2/5, 6*r2/5, 4*sqrt(3)*r2/5)
r3 = 3r2/5 となり,小円の直径が中円の直径の 3/5 倍で,外円の直径が中円の直径の 3 倍であるから,外円の直径は小円の直径の 5 倍である。
中円の半径を 5 としたとき,その他のパラメータは以下のとおりである。
団扇の半径 = 15; 小円の半径 = 3; 大円の半径 = 10; 中円の半径 = 5; x3 = 6; y3 = 6.9282
x3 が小円の直径と等しくなる。
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r2 = 5 # 中円の半径を 5 として図を描く
(r3, x3, y3) = (3*r2/5, 6*r2/5, 4*sqrt(3)*r2/5)
R = 3r2
r1 = 2r2
@printf("団扇の直径は小円の直径の %g 倍である\n", R/r3)
@printf("団扇の半径 = %g; 小円の半径 = %g; 大円の半径 = %g; 中円の半径 = %g; x3 = %g; y3 = %g\n", R, r3, r1, r2, x3, y3)
plot()
circle(0, 0, R)
circle2(r2, 0, r1, :blue)
circle(0, 0, r2)
circle2(2r2, 0, r2)
circle4(x3, y3, r3, :green)
circle(0, R - r3, r3, :green)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
hline!([0], color=:gray80, lw=0.5)
vline!([0], color=:gray80, lw=0.5)
point(-r2, 0, " -r2", :red, :left, :bottom, delta=delta/2)
point(r2, 0, " r2", :red, :left, :bottom, delta=delta/2)
point(x3, y3, " 小円:r3\n(x3,y3)", :green, :center, delta=-delta/2)
point(0, R - r3, " 小円:r3\n(0,R-r3)", :green, :center, delta=-delta/2)
end
end;