Coordinate polari > Tangente

Con la tecnica delle coordinate polari, tramite le variazioni dei parametri nella formula della funaione tangente

\displaystyle \rho = \tan \left(\frac{n_1}{n_2}\ \theta\right)

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()

Lascia un commento