Con la tecnica delle coordinate polari, tramite le variazioni dei parametri nella formula della funaione tangente
![]()
Per alcune curve sarà necessario aumentare il numero di Punti utilizzati e/o il numero di multipli di Pi greco del dominio della variabile indipendente e/o lo Zoom.
Web VPython
Modifica il codice a piacere: dimensione della finestra grafica, colore e spessore della curva, …
Web VPython 3.2
n1 = 2
n2 = 3
N = 1000
NPI = 5
zoom = 2
def funzione(x): return tan(n1/n2*x)
def disegna():
PUNTI = []
STOP = NPI * pi
STEP = STOP / N
angolo = 0.01
i = 0
while(i <= N):
r = funzione(angolo)
x = r*cos(angolo)
y = r*sin(angolo)
if(abs(x) <= zoom) and (abs(y) <= zoom):
PUNTI.append((x, y))
i += 1
angolo += STEP
g.title = f"tan({n1}/{n2} x)"
g.xmin = g.ymin = -zoom
g.xmax = g.ymax = +zoom
gc.data = PUNTI
def n_n1(evt):
global n1
n1 = int(evt.value)
v_n1.text = n1
disegna()
def n_n2(evt):
global n2
n2 = int(evt.value)
v_n2.text = n2
disegna()
def n_p(evt):
global N
N = int(evt.value)
v_p.text = N
disegna()
def n_pi(evt):
global NPI
NPI = int(evt.value)
v_pi.text = NPI
disegna()
def n_z(evt):
global zoom
zoom = int(evt.value)
v_z.text = zoom
disegna()
c=canvas()
c.append_to_caption("n1\t\t\t\t\tZoom\t\t\t\tPunti\n\t")
w_n1 = slider(bind = n_n1, value=n1, min=1 , max=5 , step=1, length="100")
c.append_to_caption(" "); v_n1 = wtext(text=n1)
c.append_to_caption("\t\t\t"); w_z = slider(bind = n_z, value=zoom, min=1, max=10, step=1, length="100")
c.append_to_caption("\t"); v_z = wtext(text=zoom)
c.append_to_caption("\t\t\t"); w_p = slider(bind = n_p , value=N , min=1000, max=2500, step=250, length="100")
c.append_to_caption(" "); v_p = wtext(text=N)
c.append_to_caption("\nn2\t\t\t\t\tPi greco\n\t")
w_n2 = slider(bind = n_n2, value=n2 , min=1 , max=5 , step=1 , length="100")
c.append_to_caption(" "); v_n2 = wtext(text=n2)
c.append_to_caption("\t\t\t"); w_n1 = slider(bind = n_pi, value=NPI, min=1 , max=10 , step=1 , length="100")
c.append_to_caption(" "); v_pi = wtext(text=NPI)
c.append_to_caption("\n\n")
c.delete()
g = graph(fast=False, width=600, height=600)
gc = gdots(color=color.blue, width=3)
g.xmin = g.ymin = -zoom
g.xmax = g.ymax = +zoom
disegna()