裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

算額(その1161)

2024年07月22日 | Julia

算額(その1161)

一八 大里郡岡部村岡 稲荷社 文化14年(1817)
埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.
キーワード:円6個,長方形,斜線2本

長方形の中に 2 本の斜線を引き,等円 5 個,白円 1 個と,矢(真ん中の等円の頂部から斜線の交点までの線分)を容れる。矢の長さが 1 寸のとき,白円の直径を求めよ。

斜線の交点を原点とする。
斜線はデタラメに引いたものではなく,長方形の長辺を一辺とする正方形の対角線である(図参照)。

矢を「矢」
白円の半径と中心座標を r1, (0, r1)
等円の半径と中心座標を r2, (0, 矢 - r2)
長方形の長辺,短辺を 2a,a + 矢 + 2r2
とおく。

等円の半径は r2 = 矢 + √2矢 = 矢*(1 + √2) である。
⊿OAB と ⊿OCD は相似で,相似比は 3r2:(矢 + 2r2) である。
白円の半径は r1 = (矢 + √2矢) * 3r2/(矢 + 2r2) である。

矢 = 1 のとき,白円の半径は (矢 + √2矢) * 3r2/(矢 + 2r2) = 3 である。

include("julia-source.txt");

function draw(矢, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r2 = 矢 + sqrt(2)*矢
   a = 3r2
   b = a
   y = -2r2 - 矢
   相似比 = 3r2/(矢 + 2r2)
   r1 = r2*相似比
   @printf("r2 = %g;  矢 = %g;  相似比 = %g;  r1 = %g\n", r2, 矢, 相似比, r1)
   plot([a, a, -a, -a, a], [-b, b, b, -b, -b], color=:blue, lw=0.5)
   segment(-a, y, a, y, :blue)
   segment(-a, a, a, -a, :blue)
   segment(a, a, -a, -a, :blue)
   circle(0, y + r2, r2)
   circle2(2r2, y + r2, r2)
   circle2(2r2, y + 3r2, r2)
   circle(0, a - r1, r1, :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)
       dimension_line(0, -矢, 0, 0, "矢")
       point(a, y, " (a,y)", :blue, :left, :vcenter)
       point(a, -b, " (a,-b)", :blue, :left, :vcenter)
       point(a, b, " (a,b)", :blue, :left, :vcenter)
       point(0, y+r2, "等円:r2,(0,y+r2)", :red, :center, delta=-delta/2)
       point(0, b - r1, "白円:r1,(0,R-r1)", :green, :center, delta=-delta/2)
       point(0, 0, "O", :blue, :center, :bottom, delta=delta/2)
       point(a, a, "A", :blue, :center, :bottom, delta=delta/2)
       point(-a, a, "B", :blue, :center, :bottom, delta=delta/2)
       point(y, y, "C", :blue, :center, delta=-delta/2)
       point(-y, y, "D", :blue, :center, delta=-delta/2)
       xlims!(-a - 5delta, a + 10delta)
   end
end;

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村