Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
gr.setviewport(0.1, 0.95, 0.1, 0.95)
gr.setwindow(50, 25000, 0, 100)
gr.setscale(1)
start = time.time()
while time.time() - start < 10:
try:
power = get_spectrum()
peakind = signal.find_peaks_cwt(power, numpy.array([5]))
except (IOError):
continue
gr.clearws()
gr.setlinewidth(1)
gr.setlinecolorind(1)
gr.grid(1, 5, 50, 0, 1, 2)
gr.axes(1, 5, 50, 0, 1, 2, -0.008)
gr.setcharheight(0.020)
gr.text(0.15, 0.965, '100Hz')
gr.text(0.47, 0.965, '1kHz')
gr.text(0.79, 0.965, '10kHz')
gr.setlinecolorind(4)
gr.polyline(f[1:], power[1:])
for p in peakind:
if power[p] > 10:
gr.setlinewidth(2)
gr.setlinecolorind(2)
xe, ye = parabolic(f[p], power, p)
print(xe, ye)
gr.polyline([xe] * 2, [0, ye])
def drawGR(self):
if self.linetype is not None and self.x:
# preserve old values
lcolor = gr.inqlinecolorind()
gr.setlinewidth(2)
gr.setlinecolorind(self.linecolor)
for xi, yi in zip(self.x, self.y):
gr.polyline([xi, xi], [0, yi])
# restore old values
gr.setlinecolorind(lcolor)
gr.setlinewidth(1)
if rgbFace is not None and len(points) > 2:
color = gr.inqcolorfromrgb(rgbFace[0], rgbFace[1], rgbFace[2])
gr.settransparency(rgbFace[3])
gr.setcolorrep(color, rgbFace[0], rgbFace[1], rgbFace[2])
gr.setfillintstyle(gr.INTSTYLE_SOLID)
gr.setfillcolorind(color)
gr.drawpath(points, codes, fill=True)
lw = gc.get_linewidth()
if lw != 0:
rgba = gc.get_rgb()[:4]
color = gr.inqcolorfromrgb(rgba[0], rgba[1], rgba[2])
gr.settransparency(rgba[3])
gr.setcolorrep(color, rgba[0], rgba[1], rgba[2])
if isinstance(gc._linestyle, str):
gr.setlinetype(linetype[gc._linestyle])
gr.setlinewidth(lw)
gr.setlinecolorind(color)
gr.drawpath(points, codes, fill=False)
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')
if rgbFace is not None and len(points) > 2:
color = gr.inqcolorfromrgb(rgbFace[0], rgbFace[1], rgbFace[2])
gr.settransparency(rgbFace[3])
gr.setcolorrep(color, rgbFace[0], rgbFace[1], rgbFace[2])
gr.setfillintstyle(gr.INTSTYLE_SOLID)
gr.setfillcolorind(color)
gr.drawpath(points, codes, fill=True)
lw = gc.get_linewidth()
if lw != 0:
rgba = gc.get_rgb()[:4]
color = gr.inqcolorfromrgb(rgba[0], rgba[1], rgba[2])
gr.settransparency(rgba[3])
gr.setcolorrep(color, rgba[0], rgba[1], rgba[2])
if type(gc._linestyle) is unicode:
gr.setlinetype(linetype[gc._linestyle])
gr.setlinewidth(lw)
gr.setlinecolorind(color)
gr.drawpath(points, codes, fill=False)
def drawGR(self):
if self.linetype is not None and self.x:
# preserve old values
lcolor = gr.inqlinecolorind()
gr.setlinewidth(2)
gr.setlinecolorind(self.linecolor)
for xi, yi in zip(self.x, self.y):
gr.polyline([xi, xi], [0, yi])
# restore old values
gr.setlinecolorind(lcolor)
gr.setlinewidth(1)
y -= 2 * charHeightUnscaled
if y < 0:
vp = self.viewport
vp[2] += 3 * charHeightUnscaled
# propagate update (calls setter)
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
continue
gr.clearws()
gr.setlinewidth(1)
gr.setlinecolorind(1)
gr.grid(1, 5, 50, 0, 1, 2)
gr.axes(1, 5, 50, 0, 1, 2, -0.008)
gr.setcharheight(0.020)
gr.text(0.15, 0.965, '100Hz')
gr.text(0.47, 0.965, '1kHz')
gr.text(0.79, 0.965, '10kHz')
gr.setlinecolorind(4)
gr.polyline(f[1:], power[1:])
for p in peakind:
if power[p] > 10:
gr.setlinewidth(2)
gr.setlinecolorind(2)
xe, ye = parabolic(f[p], power, p)
print(xe, ye)
gr.polyline([xe] * 2, [0, ye])
gr.updatews()
y -= 2 * charHeightUnscaled
if y < 0:
vp = self.viewport
vp[2] += 3 * charHeightUnscaled
# propagate update (calls setter)
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
def pendulum(t, theta, omega, acceleration):
gr.clearws()
gr.setviewport(0, 1, 0, 1)
x = [0.5, 0.5 + sin(theta) * 0.4]
y = [0.8, 0.8 - cos(theta) * 0.4]
gr.fillarea(4, # draw pivot point
[0.46, 0.54, 0.54, 0.46], [0.79, 0.79, 0.81, 0.81])
gr.setlinecolorind(1)
gr.setlinewidth(2)
gr.polyline(2, x, y) # draw rod
gr.setmarkersize(5)
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.setmarkercolorind(86)
gr.polymarker(1, [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*cos(theta), y[1] + V*sin(theta))
gr.setlinecolorind(2)
A = 0.05 * acceleration # show angular acceleration
gr.drawarrow(x[1], y[1], x[1] + A*sin(theta), y[1] + A*cos(theta))
gr.settextfontprec(2, gr.TEXT_PRECISION_STRING)
gr.setcharheight(0.032)
gr.settextcolorind(1)
gr.textext(0.05, 0.95, 'Damped Pendulum')