・勉強になりました。ありがとうございました。
Right Triangle Altitude Theoremでした。
・三角関数でできなかったのは残念でした。
・加筆済み。割円のリンクと説明。
オリジナル
YUUU0123 様 (0:00〜4:45) いつもお世話になっております。
↓高校入試チャレンジ問題 赤い部分の面積は?
https://youtu.be/7oMmz_BsPZ4
いつものsympyで(オリジナル Youtbe様の方法を参考に)
ver0.1
・先生の丸写しです。図形の証明は省略です。
・eq1がRight Triangle Altitude Theoremです。Eq(y/6,x/y)に同じです。
# ver0.1
from sympy import *
var('x,y',real=True,positive=True)
eq1 =Eq(y**2 ,6*x )
eq2 =Eq(x**2+y**2,4**2)
sol =solve([eq1,eq2],[x,y]) #;print(sol)
CD,DB=sol[0][0],sol[0][1] #;print(CD,DB)
DOB =DB**2*pi*60/360 #;print(DOB)
AOD =DB*DB/2*1/2 #;print(AOD)
print("#",DOB+AOD)
# 3*sqrt(3) + 2*pi
いつもの sympyで
ver1.1
・中心A半径6の円が見えました。円と円の交点計算の方程式solveです。
後半に、作図あります。
・私は、高校入試チャレンジ問題 様の「割円、弓形、円の一部の面積の対応」はバッチリです。
いつでもどうぞ状態です。
本ページ最後参照
# ver1.1
from sympy import *
var('r',real=True,positive=True)
def segment_area_chord(r, c):
theta = 2 * asin(c / (2*r))
return r**2 * (theta - sin(theta)) / 2
A,O,B,C=map(Point,[(-r,0),(0,0),(r,0),(r,4)])
D =Circle(O,r).intersection(Circle(A,6))[1] #;print(D)
C =Line(B,B+Point(0,1)).intersection(Line(A,D))[0] #;print(C)
r_sol =solve(Eq(C.y,4),r)[0] #;print(rep)
rep ={r:r_sol} #;print(rep)
B,D =B.subs(rep),D.subs(rep)
print("#",(Rational(1,2)*(2*r_sol)*D.y+segment_area_chord(r_sol,B.distance(D))).simplify())
# 3*sqrt(3) + 2*pi
ver1.2
・普通はコチラ。角度を使わない。線分の長さだけ。典型的なダブル三平方?トリプル?
# ver1.2
from sympy import *
var('r,DC',real=True,positive=True)
def segment_area_chord(r, c):
theta = 2 * asin(c / (2*r))
return r**2 * (theta - sin(theta)) / 2
AD,BC =6,4
eq1 =Eq((2*r)**2+BC**2,(AD+DC) **2)
eq2 =Eq((2*r)**2-AD**2,BC**2-DC**2)
sol =solve([eq1,eq2],[r,DC]) #;print(sol)
r_sol,DC=sol[0][0],sol[0][1] #;print(r_sol) #;print(rep)
BD =sqrt((eq2.lhs).subs({r:r_sol})) #;print(BD) #;print(rep)
print("#",(Rational(1,2)*2*r_sol*BC*AD/(AD+DC)+segment_area_chord(r_sol,BD)).simplify())
# 3*sqrt(3) + 2*pi
ver1.3
・できませんでした。 何が何でも、三角関数で3元連立方程式です。
AD と BC が離れていても、ABが共通で角Aもでした。ステキ。と思ったんですけどねー。
・Gemini先生へ。以下解がでません。
# # ver1.3
# from sympy import *
# var('r,DC,θ',real=True,positive=True)
# AD,BC=6,4
# eq1 =Eq(cos(θ),(2*r)/(AD+DC))
# eq2 =Eq(sin(θ), BC /(AD+DC))
# eq3 =Eq(tan(θ), BC /(2*r) )
# sol =solve([eq1,eq2,eq3],[r,DC,θ]) ;print(sol)
## Gemini先生へ。以下解がでません。
ver1.4
・面積は足さなくても、半円の面積から弓形の面積を引きました。
# ver1.4
from sympy import *
var('r',real=True,positive=True)
def segment_area_chord(r, c):
theta = 2 * asin(c / (2*r))
return r**2 * (theta - sin(theta)) / 2
AD =6
A,O,B,C=map(Point,[(-r,0),(0,0),(r,0),(r,4)])
D =Circle(O,r).intersection(Circle(A,AD))[1] #;print(D)
C =Line(B,B+Point(0,1)).intersection(Line(A,D))[0] #;print(C)
r_sol =solve(Eq(C.y,4),r)[0]
print("#",Rational(1,2)*pi*r_sol**2-segment_area_chord(r_sol,AD).simplify())
# 3*sqrt(3) + 2*pi
(続けて)Gemini先生へ
PNG図のみ出力して下さい。
(ソースコードの表示を省略)
・Geminiでできなかったので、ChatGPTでSVG図→PNG図変換です。

いつもの? sympyの実行環境 と 参考のおすすめです。
sympyのweb上での実行方法
SymPy Live Shellで。
ソースコードの解説は、私よりGemini先生へのソースコードの丸投げがおすすめです。質問の追加はいくらでも。
モーダル対応?「実行して」。「作図して」「問題文章の丸投げ」いい時代です。
いつもと違うおすすめです。
sympy のdoc
・いらないカモ。
ver0.1
ver1.1
ver1.2
ver1.3
ver1.4
Qiita内で