算額(その285)
中村信弥「改訂増補 長野県の算額」
http://www.wasan.jp/zoho/zoho.html
県内の算額(253)
長野県諏訪市中洲 諏訪大社上社 明治12年(1897)
外円の中に弦を引き,等円を 6 個入れる。そのうち 3 個は弦の下,2 個は弦の下に置き,それぞれが弦に接し,互いに外接する。また弦の下の 3 個の円の左右の等円は外円に内接する。残り 1 個は弦の上の2個に外接し,外円に内接する。
等円の径が 1 寸のとき,外円の径を求めよ。
外円,等円の半径を R, r,弦の位置を y とする(y < 0, 外円の中心から弦までの距離は -y)。
等円の中心座標は図に示すようになる。
r を変数のままにして,以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms R::positive, r::positive, y::negative;
eq1 = r^2 + ((R - r) - (r + y))^2 - 4r^2
eq2 = 4r^2 + (y - r)^2 - (R - r)^2
res = solve([eq1, eq2], (R, y))
1-element Vector{Tuple{Sym, Sym}}:
(3*r*(4 - 5*sqrt(3)/2)/5 + 18*r/5, r*(4 - 5*sqrt(3)/2))
解の式を簡約化する。
res[1][1] |> simplify |> println # 外円の半径
res[1][2] |> simplify |> println # 弦の位置(y 座標)
3*r*(4 - sqrt(3))/2
r*(8 - 5*sqrt(3))/2
等円の直径が 1 寸のとき,外円の直径は 3*(4 - sqrt(3))/2 ≒ 3.401923788646684 ≒ 3寸4分
using Plots
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r = 1/2
(R, y) = (3*r*(4 - sqrt(3))/2, r*(8 - 5*sqrt(3))/2)
x = sqrt(R^2 - y^2)
plot()
circle(0, 0, R, :black)
circle(0, R - r, r)
circle(r, r + y, r)
circle(-r, r + y, r)
circle(0, y - r, r)
circle(2r, y - r, r)
circle(-2r, y - r, r)
segment(-x, y, x, y, :blue)
if more
annotate!(0.65, 1.05, text(@sprintf("R = %.3f\ny = %.3f\nx = %.3f\nr = %.3f", R, y, x, r), 10, :left))
point(x, y, "(x,y)", :blue, :right, :bottom)
point(2r, y - r, "(2r,y-r)", :red)
point(r, r + y, "(r,r+y)", :red)
point(0, R - r, "(0,R-r)", :red)
vline!([0], color=:black, lw=0.5)
hline!([0], color=:black, lw=0.5)
else
plot!(showaxis=false)
end
end;