You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
887 B
29 lines
887 B
3 months ago
|
from manim import *
|
||
|
|
||
|
|
||
|
class ThreeDSurfacePlot(ThreeDScene):
|
||
|
def construct(self):
|
||
|
resolution_fa = 24
|
||
|
self.set_camera_orientation(phi=75 * DEGREES, theta=-30 * DEGREES)
|
||
|
|
||
|
def param_gauss(u, v):
|
||
|
x = u
|
||
|
y = v
|
||
|
sigma, mu = 0.4, [0.0, 0.0]
|
||
|
d = np.linalg.norm(np.array([x - mu[0], y - mu[1]]))
|
||
|
z = np.exp(-(d ** 2 / (2.0 * sigma ** 2)))
|
||
|
return np.array([x, y, z])
|
||
|
|
||
|
gauss_plane = Surface(
|
||
|
param_gauss,
|
||
|
resolution=(resolution_fa, resolution_fa),
|
||
|
v_range=[-2, +2],
|
||
|
u_range=[-2, +2]
|
||
|
)
|
||
|
|
||
|
gauss_plane.scale(2, about_point=ORIGIN)
|
||
|
gauss_plane.set_style(fill_opacity=1, stroke_color=GREEN)
|
||
|
gauss_plane.set_fill_by_checkerboard(ORANGE, BLUE, opacity=0.5)
|
||
|
axes = ThreeDAxes()
|
||
|
self.add(axes, gauss_plane)
|