![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以下のプログラムはPythonでせん断応力図、曲げモーメント図を表示させたいだけなのですが、
実行するとすぐウィンドウが落ちてしまいます。
どこをどう修正すれば良いか教えて頂けますか?
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import numpy as np
import matplotlib.pyplot as plt
# 梁の長さと荷重
L = 10 # 梁の長さ
P = 1000 # 集中荷重
# せん断応力と曲げモーメントの計算
x = np.linspace(0, L, 500)
V = np.piecewise(x, [x < L/2, x >= L/2], [P/2, -P/2]) # せん断応力
M = np.piecewise(x, [x < L/2, x >= L/2], [P*x/2, P*(L-x)/2]) # 曲げモーメント
# プロットの作成
fig, axs = plt.subplots(3, 1, figsize=(10, 8), sharex=True)
# 梁のイラスト
axs[0].plot([0, L], [0, 0], 'k-', linewidth=2)
axs[0].set_title('梁のイラスト')
axs[0].set_xlim(-1, L+1)
axs[0].set_ylim(-1, 1)
axs[0].set_yticks([])
axs[0].set_xticks([])
axs[0].annotate('荷重 P', xy=(L/2, 0), xytext=(L/2, 0.5),
arrowprops=dict(facecolor='black', shrink=0.05))
# せん断応力図
axs[1].plot(x, V, 'b-', label='せん断応力')
axs[1].set_title('せん断応力図')
axs[1].set_ylabel('せん断応力 [N]')
axs[1].grid(True)
axs[1].legend()
# 曲げモーメント図
axs[2].plot(x, M, 'r-', label='曲げモーメント')
axs[2].set_title('曲げモーメント図')
axs[2].set_xlabel('梁の位置 [m]')
axs[2].set_ylabel('曲げモーメント [Nm]')
axs[2].grid(True)
axs[2].legend()
plt.tight_layout()
# Tkinterウィンドウの設定
root = tk.Tk()
root.title("単純はりのせん断応力図と曲げモーメント図")
# MatplotlibのFigureをCanvasに埋め込む
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
# 終了ボタンの設定
def on_closing():
root.quit()
root.destroy()
root.protocol("WM_DELETE_WINDOW", on_closing)
tk.Button(root, text="終了", command=on_closing).pack(side=tk.BOTTOM)
root.mainloop()
No.2ベストアンサー
- 回答日時:
Windows 11のanacondaで試したらDLLload errorでimagingが見つからないと言われたのでanacondaをupdateしました。
そうしたらこんどはM = np.piecewise(x, [x < L/2, x >= L/2], [P*x/2, P*(L-x)/2])がerrorになったので以下のようにnp.where(x < L/2, P/2, -P/2)
np.where(x < L/2, P*x/2, P*(L-x)/2)
修正したら図とグラフは表示されましたが日本語は表示されませんでした。
No.1
- 回答日時:
分からん。
単に落ちてるだけ、なんじゃないの?
エラーは出てない?
こっち(xubuntu22.04, Python 3.11.9)で試してみると、落ちる、落ちない以外に単にエラーが出てくるんだが。
恐らくNumpy絡みのエラーで落ちてるんだと思うんだけどね。
ただ、デバッグは他人にやらせるような事じゃないと思うし、「プログラミング初心者はNumpyなんざ使わない/使ってはいけない」と言う原則から言うと、貴方は既にPythonプログラミングに「慣れてる」だろうから、デバッガ走らせながら見ていった方がいいと思うよ。
![「Pythonを使ってせん断応力図、曲げモ」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/0/525078_66af7f0538b1e/M.png)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX PYTHONのtkinterについて 1 2023/10/14 10:19
- 建築学 梁の計算で手こずってます。建築系の事に詳しい人、誰か助けてください 僕は工学系の学生なんですが、梁に 1 2022/11/15 12:53
- AJAX Pythonのtkinterについて 2 2023/10/12 19:31
- 工学 等分布荷重の曲げモーメント計算について 1 2022/08/16 14:36
- その他(プログラミング・Web制作) Python言語のAnacondaの話です Windows 10 でアナコンダを入れました エディタ 4 2024/07/17 23:35
- 工学 材料力学(構造力学?)についての問題です。 写真のような形で部材CDの内力を考えます。 C点からの距 1 2022/11/22 00:41
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- その他(プログラミング・Web制作) PythonのTkinter詳しい方へ。画像や言葉の意味を答える3択クイズを作るのに手間取っています 1 2023/12/04 17:10
- 物理学 材料力学の断面2次モーメントを求める問題です。写真のように図形を分割して、長方形のX軸に関する断面2 3 2024/06/20 16:14
- その他(プログラミング・Web制作) pythonの画像の貼り付けについて 4 2023/10/01 23:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonを使ってせん断応力図、...
-
ADに参加していないPCからADサ...
-
ゲージと連動したムービークリ...
-
SNMPの標準MIBについて
-
else if文の順序を変えることに...
-
Flash5で製作したゲームをFlas...
-
python ボタンを押すと複数の関...
-
PYTHONのtkinterについて
-
アセンブリ言語のcasl2について...
-
オブジェクトの重なり順の変更
-
漢字入力した値のカタカナ変換...
-
テキストエリア内の文字列にリ...
-
photoshopで書いた四角の枠の中...
-
楕円の軌道に傾斜をつける方法...
-
VB.NET2005 DataGridViewでレコ...
-
FlashとJSPの連携
-
五芒星は、悪魔崇拝とどういう...
-
VBAからPDFのテキストフィールド
-
VB.NETで数十行のプログラムを...
-
【ActionScript】テキストボッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
PYTHONのtkinterについて
-
PythonでSetWindowPosを使うに...
-
node* ってなんなのでしょうか?
-
SNMPの標準MIBについて
-
ADに参加していないPCからADサ...
-
Pythonのtkinterについて
-
Flash Liteのムービークリップ...
-
C++インタプリタを探してます
-
HTMLからFLASHに変数を送り、内...
-
now loding.......
-
変数名に変数を使う
-
脱出ゲームを作るときのアクシ...
-
FLASHで「かるた」を作りたいの...
-
3.0の絶対パス
-
当たり判定で一度だけ音をなら...
-
二分探索木のプログラム
おすすめ情報