Contact Us!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
sagemathinc

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: sagemathinc/cocalc-example-files
Path: blob/master/sage/interact/Geometry/evolutes.sagews
Views: 1123
var('t'); def norma(v): return sqrt(sum(x^2 for x in v)) paso_angulo=5 @interact def _( gamma1=input_box(default=sin(t)), gamma2=input_box(default=1.3*cos(t)), draw_normal_lines=True, rango_angulos=range_slider(0,360,paso_angulo,(0,90),label='Draw lines for these angles'), draw_osculating_circle=True, t0=input_box(default=pi/3,label='parameter value for the osculating circle'), auto_update=False ): gamma=(gamma1,gamma2) gammap=(gamma[0].derivative(),gamma[1].derivative()) np=norma(gammap) gammapp=(gammap[0].derivative(),gammap[1].derivative()) npp=norma(gammapp) normal=(gammap[1]/np, -gammap[0]/np) curvatura=(gammap[1]*gammapp[0]-gammap[0]*gammapp[1])/norma(gammap)^3 radio=1/curvatura centros=(gamma[0]+radio*normal[0],gamma[1]+radio*normal[1]) curva=parametric_plot(gamma,(t,0,2*pi)) evoluta=parametric_plot(centros,(t,0,2*pi), color='red') grafica=curva+evoluta if draw_normal_lines: f=2*pi/360 lineas=sum(line2d( [ (gamma[0](t=i*f), gamma[1](t=i*f)), (centros[0](t=i*f), centros[1](t=i*f)) ], thickness=1,rgbcolor=(1,0.8,0.8)) for i in range(rango_angulos[0], rango_angulos[1]+paso_angulo, paso_angulo)) grafica+=lineas if draw_osculating_circle and 0<t0<2*pi: punto=point((gamma[0](t=t0), gamma[1](t=t0)), rgbcolor=hue(0),pointsize=30) circulo=circle( (centros[0](t=t0), centros[1](t=t0)), radio(t=t0) ) grafica+=punto+circulo show(grafica,aspect_ratio=1,xmin=-2,xmax=2,ymin=-2,ymax=2)
t
Interact: please open in CoCalc