Issue
Im trying to represent an 2 dimensional array of a pyramid in the 3d space. In matlab i could just use the function mesh(). But in python im having a hard time doing it.
import numpy as np
import matplotlib.pyplot as plt
Pyramid = np.zeros([512, 512])
x = Pyramid.shape[0]
y = Pyramid.shape[1]
if x != y:
print("ERROR: 'Not square'")
exit()
for i in range(x // 2):
for j in range(i, x - i):
for h in range(i, x - i):
Pyramid[j, h] = i
fig = plt.figure()
ax = plt.axes(projection="3d")
plt.show()
Solution
np.meshgrid()
creates the grid coordinates. ax.plot_surface()
plots a 3d height field.
import numpy as np
import matplotlib.pyplot as plt
Pyramid = np.zeros([512, 512])
x = Pyramid.shape[0]
y = Pyramid.shape[1]
for i in range(x // 2):
for j in range(i, x - i):
for h in range(i, x - i):
Pyramid[j, h] = i
fig = plt.figure()
ax = plt.axes(projection="3d")
x2d, y2d = np.meshgrid(range(x), range(y))
ax.plot_surface(x2d, y2d, Pyramid)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('height')
plt.show()
Answered By - JohanC
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.