(その1/3) https://qiita.com/mrrclb48z/items/f15a4283ab76544ac44a
(その3/3) https://qiita.com/mrrclb48z/items/8cb23b5de947f2aad3ce
・共テの花子さん、太郎さん 登場です。
・sympyのソースコード→会話
Gemini先生へ。
以下の解説を、共通テストの花子さん、太郎さんの会話形式でお願いします。
(ver1.1ソースコード省略)
(回答多数省略) 1回目?メネラウス 参考ページ後半。 (おまけ)Gemini先生へ。今回の履歴。
・結局どう質問したらイイノ。です。
以下のPythonコードについて、メネラウスの定理などは使わず、
ソースコードで用いている intersection や座標幾何の処理に
忠実に沿った解説を作成してください。
解説は共通テスト風の花子さんと太郎さんの会話形式(「」を使用)とし、
LaTeX表記を使わずに黒背景のテキスト形式で出力してください。
# ver1.1
from sympy import *
AD,DB,BE,EC=4,8,6,3
A,D,B,E,C=map(Point,[(0,AD+DB),(0,DB),(0,0),(BE,0),(BE+EC,0) ])
F =Line(A,E).intersection(Line(D,C))[0] #;print(F)
print("#", Polygon(D,B,E,F).area )
print("#",float(Polygon(D,B,E,F).area))
# 144/5
# 28.8
会話(ver1.1)
花子「まずはSymPyモジュールから全ての関数を読み込むのね。」
太郎「うん、これで図形の座標や面積を計算する準備が整うよ。」
花子「各線分の長さを AD=4, DB=8, BE=6, EC=3 と設定するわ。」
太郎「点Bを原点 (0,0) として、点A, D, B, E, C の座標を Point で定義するんだね。」
花子「点Aは (0,12)、点Dは (0,8)、点Bは (0,0)、点Eは (6,0)、点Cは (9,0) になるわね。」
太郎「直線AEと直線DCの交点を intersection で求めて、その1つ目の要素を点Fとするよ。」
花子「これで交点Fの座標が自動で計算されて取得できるのね。」
太郎「点D, B, E, F を頂点とする多角形(四角形)Polygon の面積 area を分数形式で出力するよ。」
花子「計算結果は 144/5 になるわね。」
太郎「最後に float を使って、その面積を小数形式に変換して出力するんだ。」
花子「28.8 という小数値が得られるのね。」
太郎「分数の実行結果がこれだね。」
花子「小数の実行結果でぴったり一致しているわね。」
(回答抜粋)
9行ピッタリです。ステキ。
コードの各行に対応した9つのステップ(コメント行、空白行、コード6行、出力行)に綺麗に収まりましたね。
また何かお困りの際や調整したい点があれば、いつでもお気軽にお声がけください!
(おまけ)Gemini先生へ。今回の履歴。
・追加に追加した結果です。
1. 以下の解説を、共通テストの花子さん、太郎さんの会話形式でお願いします。# ver1.1 (Pythonコード含む)
2. メネラウスは使わないで。私のintersectionで。出力は、markdownのテキスト形式。背景黒で。htmlにせず、テキスト形式で。式もテキスト形式で。わたしのソースコードに忠実に、1行ずつでお願いします。会話らしく、: でなく「」で表示して。背景黒を忘れないで。コピーしやすい形式で。div 不要。出力にソースコード不要。黒背景。divイラナイ。会話の行間にソースコード行番号を追加して。出力の追番は不要です。会話文の間にいれて。「」忘れないで。tex形式にしないで。出力の追番にしないで。ソースコードの行番号にして。コメント文。空白行も行番号にして。その文の解説不要です。
3. 上記の回答の 行頭# の文を削除 して。
4. 直前の回答をもらえるための質問文をまとめて。1つにして。最初のソースコードで連結して。背景黒で。
5. Texがでないようにして。それで。回答もして。回答もmarkdownで。
6. 9行ピッタリです。ステキ。
7. 上記の私の質問すべてから、Markdownのテキスト形式で、質問リストを出力して。追番を追加して。本質問も含めて。コピーできる形式で。空白行不要です。
(途中の回答)
# コメント文。
花子「まずはSymPyモジュールから全ての関数を読み込むのね。」
# 空白行
太郎「うん、これで図形の座標や面積を計算する準備が整うよ。」
# AD,DB,BE,EC=4,8,6,3
花子「各線分の長さを AD=4, DB=8, BE=6, EC=3 と設定するわ。」
# A,D,B,E,C=map(Point,[(0,AD+DB),(0,DB),(0,0),(BE,0),(BE+EC,0) ])
太郎「点Bを原点 (0,0) として、点A, D, B, E, C の座標を Point で定義するんだね。」
花子「点Aは (0,12)、点Dは (0,8)、点Bは (0,0)、点Eは (6,0)、点Cは (9,0) になるわね。」
# F =Line(A,E).intersection(Line(D,C))[0] #;print(F)
太郎「直線AEと直線DCの交点を intersection で求めて、その1つ目の要素を点Fとするよ。」
花子「これで交点Fの座標が自動で計算されて取得できるのね。」
# print("#", Polygon(D,B,E,F).area )
太郎「点D, B, E, F を頂点とする多角形(四角形)Polygon の面積 area を分数形式で出力するよ。」
花子「計算結果は 144/5 になるわね。」
# print("#",float(Polygon(D,B,E,F).area))
太郎「最後に float を使って、その面積を小数形式に変換して出力するんだ。」
花子「28.8 という小数値が得られるのね。」
# 144/5
太郎「分数の実行結果がこれだね。」
# 28.8
花子「小数の実行結果でぴったり一致しているわね。」
いつもと違うおすすめです。
PR
・次は、私の自作です。マタカヨーです。(登場人物。中学2年生A子、B子、私)
・次は、、私の自作です。(登場人物。中学3年生A子、B子、B子の弟(小学5年生)、私)
当時、FreeCAD で真面目に作図していました。