#!/usr/bin/python3
# ====================================================================
# plot curve #1
# ====================================================================
import numpy as np
import graphics as gr
import draw_xy_axes as ax
# --------------------------------------------------------------------
# ---- curve #1
# --------------------------------------------------------------------
def curve01(x):
y = 1/(1+x**2)
return y
# --------------------------------------------------------------------
# ---- range function for floats
# --------------------------------------------------------------------
def frange(start,end,inc):
while start < end:
yield start
start += inc
# --------------------------------------------------------------------
# ---- main
# --------------------------------------------------------------------
if __name__ == '__main__':
# ---- draw a point (small circle) using window coordinates
def draw_point(x,y,color='red',size=4):
p = gr.Circle(gr.Point(x,y),size)
p.setFill(color)
p.setOutline('black')
p.draw(win)
return p
# ---- setup graphics window
win = gr.GraphWin('Curve #1',801,801)
win.setBackground("white")
# ---- draw X,Y axes
ax.draw_xy_axes(win)
# ---- plot curve #1
# ---- X scale factor 35 offset 400
# ---- Y scale factor -300 offset 400
for x in range(-10,10):
y = curve01(x)
print(f'x={x:>6.2f} y={y:>6.2f} (raw values)')
x = 400 + (i * 35)
y = 400 + (y * -300)
draw_point(x,y)
# ---- pause program (click in window to continue)
click = win.getMouse()
win.close()