算額(その91)
千葉県君津市 神野寺 明治20(1887)年4月
http://www.wasan.jp/chiba/jinyaji4.html
円内に正三角形,甲円,乙円,丙円がある。それぞれの径を求めよ。
外円の半径を 1 とする。甲円の半径は 1/2 である。次いで,順に乙円,丙円の中心座標と径を求める。SymPy を使わあなくても求めることができる。
乙円の半径は 1/4 中心座標は cosd(i)*3/4, sind(i)*3/4, i = 30, 150, 270
丙円の半径は 1/6 中心座標は cosd(i+60)*2/3, sind(i+60)*2/3, i = 30, 150, 270
using Plots
function circle(ox, oy, r, color=:red; beginangle=0, endangle=360)
θ = beginangle:0.1:endangle
x = r.*cosd.(θ)
y = r.*sind.(θ)
plot!(ox .+ x, oy .+ y, color=color, linewidth=0.5)
end;
function point(x, y, string="", color=:green, position=:left, vertical=:top; fontsize=10, mark=true)
mark && scatter!([x], [y], color=color, markerstrokewidth=0)
annotate!(x, y, text(string, fontsize, vertical, position, color))
end;
function segment(x1, y1, x2, y2, color=:black; linestyle=:solid, linewidth=0.5)
plot!([x1, x2], [y1, y2], color=color, linestyle=linestyle, linewidth=linewidth)
end;
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
plot()
circle(0, 0, 1, :black)
plot!([0, cosd(-30), cosd(210), 0], [1, sind(-30), sind(210), 1], color=:magenta, lw=0.5)
circle(0, 0, 1/2)
for i = 30:120:270
circle(cosd(i)*3/4, sind(i)*3/4, 1/4, :green)
circle(cosd(i+60)*2/3, sind(i+60)*2/3, 1/6)
end
hline!([0], color=:black, lw=0.5)
if more
point(0, 0, "0 ", :red, :right)
point(0, 1/2, "1/2 ", :red, :right)
point(0, 2/3, "2/3 ", :blue, :right)
point(cosd(30)*3/4, sind(30)*3/4, "(x,y)\nx=cosd(30)*3/4\ny=sind(30)*3/4", :green, :top)
vline!([0], color=:black, lw=0.5)
end
end;
※コメント投稿者のブログIDはブログ作成者のみに通知されます