我有一个平面和一个正弦曲线,如何旋转这两个对象?我的意思是在区间-0.1到0.4缓慢倾斜平面,以便在点0.4处垂直于z轴。经过更长时间的旋转,平面和正弦的最大值和最小值将构成“从点[0,-0.1,0]到点[0,0.4,0]的轴的圆柱体表面”。我希望我的意思清楚明白。请注意保留HTML标签。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d import proj3d
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
plane1 = -0.1
plane2 = 0.4
h = 0.03
# Plane
xp = np.array([[0, 0], [0, 0]])
yp = np.array([[plane1, plane2], [plane1, plane2]])
zp = np.array([[-h, -h], [h, h]])
ax.plot_surface(xp, yp, zp, alpha=0.4, color = 'red')
# Sine
f = 100
amp = h
y = np.linspace(plane1, plane2, 5000)
z = amp*np.sin(y*f)
ax.plot(y, z, zdir='x')
plt.show()
期望的结果是一个平面,填充以下形状的正弦曲线:
但不需要旋转太多,整个区间旋转30度即可。