前提・実現したいこと
範囲内にランダムに点を1つ打ち、そこから点が任意の時間、自由落下した軌跡のものを複数個、同じグラフに表すプログラムがほしいと思い、Pythonでプログラミングを書いています。
発生している問題・エラーメッセージ
問題点が2つありまして、
1つ目は点が範囲の境界に達したとき、反射するようにしたいのですが、はみ出してしまう点。
2つ目は複数個ほしいのですが、2つしか表示されていない点。
回答よろしくおねがいします。
該当のソースコード
import matplotlib.pyplot as plt import numpy as np import random as ran t_min = 0 t_max = 20 dt = 0.1 #点の間隔 n = 10 #試行回数 x0 = [] y0 = [] g = -9.81 v = 0 for i in (1, n+1): x = ran.uniform(0, 100) y = ran.uniform(0, 100) for t in np.arange(t_min, t_max+dt, dt): if y > 0: y = y + v*dt + (1/2)*g*dt**2 v = v + g*dt elif y <= 0: v = -v y = y + v*dt + (1/2)*g*dt**2 x0.append(x) y0.append(y) plt.scatter(x0, y0) plt.axhline(y=0, xmin=0, xmax=1) plt.show()
補足情報(FW/ツールのバージョンなど)
Python 3.6.9
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/22 09:39
2020/12/22 09:43
2020/12/22 10:05
2020/12/22 10:37
2020/12/23 05:08