Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
zd = xd * np.exp(-xd**2 - yd**2)
gr.setviewport(0.1, 0.95, 0.1, 0.95)
gr.setwindow(-2, 2, -2, 2)
gr.setspace(-0.5, 0.5, 0, 90)
gr.setmarkersize(1)
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.setcharheight(0.024)
gr.settextalign(2, 0)
gr.settextfontprec(3, 0)
x, y, z = gr.gridit(xd, yd, zd, 200, 200)
h = np.linspace(-0.5, 0.5, 20)
gr.surface(x, y, z, 5)
gr.contour(x, y, h, z, 0)
gr.polymarker(xd, yd)
gr.axes(0.25, 0.25, -2, -2, 2, 2, 0.01)
gr.updatews()
gr.polymarker(x, y)
elif kind == 'scatter':
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
if z is not None or c is not None:
if c is not None:
c_min = c.min()
c_ptp = c.ptp()
for i in range(len(x)):
if z is not None:
gr.setmarkersize(z[i] / 100.0)
if c is not None:
c_index = 1000 + int(255 * (c[i] - c_min) / c_ptp)
gr.setmarkercolorind(c_index)
gr.polymarker([x[i]], [y[i]])
else:
gr.polymarker(x, y)
elif kind == 'bar':
_plot_bar()
elif kind == 'quiver':
u = z
v = c
gr.quiver(len(x), len(y), x, y, u, v, True)
_colorbar(0.05)
elif kind == 'stem':
gr.setlinecolorind(1)
gr.polyline(_plt.kwargs['window'][:2], [0, 0])
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.uselinespec(spec)
for xi, yi in zip(x, y):
gr.polyline([xi, xi], [0, yi])
gr.polymarker(x, y)
elif kind == 'hist':
gr.polymarker(x, y)
elif kind == 'scatter':
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
if z is not None or c is not None:
if c is not None:
c_min = c.min()
c_ptp = c.ptp()
for i in range(len(x)):
if z is not None:
gr.setmarkersize(z[i] / 100.0)
if c is not None:
c_index = 1000 + int(255 * (c[i]-c_min)/c_ptp)
gr.setmarkercolorind(c_index)
gr.polymarker([x[i]], [y[i]])
else:
gr.polymarker(x, y)
elif kind == 'stem':
gr.setlinecolorind(1)
gr.polyline(_plt.kwargs['window'][:2], [0, 0])
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.uselinespec(spec)
for xi, yi in zip(x, y):
gr.polyline([xi, xi], [0, yi])
gr.polymarker(x, y)
elif kind == 'hist':
y_min = _plt.kwargs['window'][2]
for i in range(1, len(y)+1):
gr.setfillcolorind(989)
gr.setfillintstyle(gr.INTSTYLE_SOLID)
gr.fillrect(x[i-1], x[i], y_min, y[i-1])
gr.setfillcolorind(1)
gr.setfillintstyle(gr.INTSTYLE_HOLLOW)
def pendulum(theta, length, mass):
l = length[0] + length[1]
gr.clearws()
gr.setviewport(0, 1, 0, 1)
gr.setwindow(-l, l, -l, l)
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.setmarkercolorind(86)
pivot = [0, 0.775] # draw pivot point
gr.fillarea(4, [-0.2, 0.2, 0.2, -0.2], [0.75, 0.75, 0.8, 0.8])
for i in range(2):
x = [pivot[0], pivot[0] + sin(theta[i]) * length[i]]
y = [pivot[1], pivot[1] - cos(theta[i]) * length[i]]
gr.polyline(2, x, y) # draw rod
gr.setmarkersize(3 * mass[i])
gr.polymarker(1, [x[1]], [y[1]]) # draw bob
pivot = [x[1], y[1]]
gr.updatews()
return
gr.polyline(x_step_boundaries, y_step_values)
if mask & 2:
gr.polymarker(x, y)
elif kind == 'scatter':
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
if z is not None or c is not None:
if c is not None:
c_min = c.min()
c_ptp = c.ptp()
for i in range(len(x)):
if z is not None:
gr.setmarkersize(z[i] / 100.0)
if c is not None:
c_index = 1000 + int(255 * (c[i] - c_min) / c_ptp)
gr.setmarkercolorind(c_index)
gr.polymarker([x[i]], [y[i]])
else:
gr.polymarker(x, y)
elif kind == 'bar':
_plot_bar()
elif kind == 'quiver':
u = z
v = c
gr.quiver(len(x), len(y), x, y, u, v, True)
_colorbar(0.05)
elif kind == 'stem':
gr.setlinecolorind(1)
gr.polyline(_plt.kwargs['window'][:2], [0, 0])
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.uselinespec(spec)
for xi, yi in zip(x, y):
gr.polyline([xi, xi], [0, yi])
def pendulum(t, theta, omega, acceleration):
gr.clearws()
gr.setviewport(0, 1, 0, 1)
x = [0.5, 0.5 + np.sin(theta) * 0.4]
y = [0.8, 0.8 - np.cos(theta) * 0.4]
# draw pivot point
gr.fillarea([0.46, 0.54, 0.54, 0.46], [0.79, 0.79, 0.81, 0.81]),
gr.setlinecolorind(1)
gr.setlinewidth(2)
gr.polyline(x, y) # draw rod
gr.setmarkersize(5)
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.setmarkercolorind(86)
gr.polymarker([x[1]], [y[1]]) # draw bob
gr.setlinecolorind(4)
V = 0.05 * omega # show angular velocity
gr.drawarrow(x[1], y[1], x[1] + V * np.cos(theta), y[1] + V * np.sin(theta))
gr.setlinecolorind(2)
A = 0.05 * acceleration # show angular acceleration
gr.drawarrow(x[1], y[1], x[1] + A * np.sin(theta), y[1] + A * np.cos(theta))
gr.settextfontprec(2, gr.TEXT_PRECISION_STRING)
gr.setcharheight(0.032)
gr.settextcolorind(1)
gr.textext(0.05, 0.95, 'Damped Pendulum')
gr.setcharheight(0.040)
gr.mathtex(0.4, 0.22, '\\omega=\\dot{\\theta}')
gr.mathtex(0.4, 0.1, '\\dot{\\omega}=-\\gamma\\omega-\\frac{g}{l}sin(\\theta)')
gr.setcharheight(0.028)
gr.textext(0.05, 0.22, 't:%7.2f' % t)
_draw_polar_axes()
else:
_draw_axes(kind)
gr.setcolormap(_plt.kwargs.get('colormap', gr.COLORMAP_COOLWARM))
gr.uselinespec(" ")
for x, y, z, c, spec in _plt.args:
gr.savestate()
if 'alpha' in _plt.kwargs:
gr.settransparency(_plt.kwargs['alpha'])
if kind == 'line':
mask = gr.uselinespec(spec)
if mask in (0, 1, 3, 4, 5):
gr.polyline(x, y)
if mask & 2:
gr.polymarker(x, y)
elif kind == 'scatter':
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
if z is not None or c is not None:
if c is not None:
c_min = c.min()
c_ptp = c.ptp()
for i in range(len(x)):
if z is not None:
gr.setmarkersize(z[i] / 100.0)
if c is not None:
c_index = 1000 + int(255 * (c[i]-c_min)/c_ptp)
gr.setmarkercolorind(c_index)
gr.polymarker([x[i]], [y[i]])
else:
gr.polymarker(x, y)
elif kind == 'stem':
self.viewport = vp
redraw = True
break
gr.setmarkertype(curve.markertype)
gr.setmarkercolorind(curve.markercolor)
ys = y * self.sizey # scaled y value
if curve.linetype is not None:
gr.setlinecolorind(curve.linecolor)
gr.setmarkercolorind(curve.markercolor)
gr.setlinetype(curve.linetype)
gr.setlinewidth(curve.linewidth)
gr.polyline([x, x + lineWidth], [ys, ys])
if (curve.markertype != gr.MARKERTYPE_DOT
and curve.markertype is not None):
gr.setmarkertype(curve.markertype)
gr.polymarker([x + lineWidth / 2.], [ys])
elif curve.markertype is not None:
gr.setmarkertype(curve.markertype)
gr.polymarker([x + lineWidth / 2.], [ys])
ybase = (y - charHeightUnscaled / 2) * self.sizey
ytop = (y + charHeightUnscaled / 2) * self.sizey
roi = RegionOfInterest(Point(x, ybase),
Point(x, ytop),
reference=curve,
regionType=RegionOfInterest.LEGEND)
x += lineWidth + .01
if curve.visible:
gr.settextcolorind(1)
else:
gr.settextcolorind(83)
gr.settextalign(gr.TEXT_HALIGN_LEFT,
worker = 'CPython'
while t < 6:
if t > 3:
if worker == 'CPython':
t0 = now
n = 0
a = step_numba(dt, size, a)
worker = 'Numba'
else:
a = step(dt, size, a)
gr.clearws()
gr.setmarkercolorind(75)
gr.polymarker(a[0, :, 0], a[0, :, 1])
if n > 0:
gr.text(0.01, 0.95, '%10s: %4d fps' % (worker, int(n / (now - t0))))
gr.updatews()
now = time.time()
n += 1
t = now - start