Рисовать трехмерные поверхности текучести с помощью matplotlibPython

Программы на Python
Ответить
Anonymous
 Рисовать трехмерные поверхности текучести с помощью matplotlib

Сообщение Anonymous »

Мне было интересно, как нарисовать трехмерные поверхности текучести, как показано на этой странице http://en.wikipedia.org/wiki/Von_Mises_yield_criterion. Для начала я пытался нарисовать поверхность текучести фон Мизеса, но безуспешно. Кажется, я вообще не знаю, с чего начать. Если бы кто-нибудь мог показать мне пример кода, например, для фон Мизеса, я мог бы использовать его для построения некоторых других поверхностей текучести, таких как Cam Clay и Modified Cam Clay.

Сначала я думал, что могу сделать что-то подобное, но это не работает:

Код: Выделить всё

for i in range(0, MAXSTEP):
stressx = stressx + STEPSIZE
stressy = -STEPSIZE
for j in range(0, MAXSTEP):
stressy = stressy + STEPSIZE
stressz = -STEPSIZE
for k in range(0, MAXSTEP):
stressz = stressz + STEPSIZE
tI1 = calcI1(stressx, stressy, stressz)
tJ2 = calcJ2(stressx, stressy, stressz)
tyieldf = calcF(tI1, ycon)
tsqrtJ2 = np.sqrt(tJ2)
tdiff = abs(tsqrtJ2 - tyieldf)
if  tdiff < TOL:
sigx[count] = stressx
sigy[count] = stressy
sigz[count] = stressy
I1[count] = tI1
sqrtJ2[count] = tsqrtJ2
diff[count] = tdiff
count = count + 1

X = np.outer(sigx[0:count], sigx[0:count])
Y = np.outer(sigy[0:count], sigy[0:count])
Z = np.outer(sigz[0:count], sigz[0:count])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()
main()
Думаю, я не знаю, как генерировать данные. У меня есть уравнения, но я не знаю, как их использовать для создания данных, необходимых для построения графика поверхности. Я думаю, мне нужно создать сетку XY, а затем решить ее для Z, но я еще не пробовал этот метод.

Подробнее здесь: https://stackoverflow.com/questions/117 ... matplotlib
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»