Differences between revisions 1 and 33 (spanning 32 versions)
 ⇤ ← Revision 1 as of 2009-01-07 19:43:24 → Size: 34 Editor: MarshallHampton Comment: ← Revision 33 as of 2019-11-14 20:56:00 → ⇥ Size: 18324 Editor: chapoton Comment: no xrange Deletions are marked like this. Additions are marked like this. Line 1: Line 1: Describe interact/geometry here. = Sage Interactions - Geometry =goto [[interact|interact main page]]<>== Intersecting tetrahedral reflections FIXME ==by Marshall Hampton. Inspired by a question from Hans Schepker of Glass Geometry.{{{#!sagecell#Pairs of tetrahedra, one the reflection of the other in the internal face, are joined by union operations:p1 = Polyhedron(vertices = [[1,1,1],[1,1,0],[0,1,1],[1,0,1]])p2 = Polyhedron(vertices = [[1/3,1/3,1/3],[1,1,0],[0,1,1],[1,0,1]])p12 = p1.convex_hull(p2)p3 = Polyhedron(vertices = [[0,0,1],[0,0,0],[0,1,1],[1,0,1]])p4 = Polyhedron(vertices = [[2/3,2/3,1/3],[0,0,0],[0,1,1],[1,0,1]])p34 = p3.convex_hull(p4)p5 = Polyhedron(vertices = [[1,0,0],[1,0,1],[0,0,0],[1,1,0]])p6 = Polyhedron(vertices = [[1/3,2/3,2/3],[1,0,1],[0,0,0],[1,1,0]])p56 = p5.convex_hull(p6)p7 = Polyhedron(vertices = [[0,1,0],[0,0,0],[1,1,0],[0,1,1]])p8 = Polyhedron(vertices = [[2/3,1/3,2/3],[0,0,0],[1,1,0],[0,1,1]])p78 = p7.convex_hull(p8)pti = p12.intersection(p34).intersection(p56).intersection(p78)@interactdef tetra_plot(opac = slider(srange(0,1.0,.25), default = .25)):    p12r = p12.render_wireframe()+p12.render_solid(opacity = opac)    p34r = p34.render_wireframe()+p34.render_solid(rgbcolor = (0,0,1),opacity = opac)    p56r = p56.render_wireframe()+p56.render_solid(rgbcolor = (0,1,0),opacity = opac)    p78r = p78.render_wireframe()+p78.render_solid(rgbcolor = (0,1,1),opacity = opac)    ptir = pti.render_wireframe()+pti.render_solid(rgbcolor = (1,0,1),opacity = .9)    show(p12r+p34r+p56r+p78r+ptir, frame = False)}}}{{attachment:tetrareflect.png}}== Evolutes ==by Pablo Angulo. Computes the evolute of a plane curve given in parametric coordinates. The curve must be parametrized from the interval [0,2pi].{{{#!sagecellvar('t');def norma(v):    return sqrt(sum(x^2 for x in v)) paso_angulo=5@interactdef _( 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 0t0)    assume(t

# Sage Interactions - Geometry

## Intersecting tetrahedral reflections FIXME

by Marshall Hampton. Inspired by a question from Hans Schepker of Glass Geometry.

## Evolutes

by Pablo Angulo. Computes the evolute of a plane curve given in parametric coordinates. The curve must be parametrized from the interval [0,2pi].

## Geodesics on a parametric surface

by Antonio Valdés and Pablo Angulo. This example was originally composed of two interacts:

• - the first allowing the user to introduce a parametric surface, and draw it. - the second drawing a geodesic within the surface.

The separation was so that after the first interact, the geodesic equations were "compiled", thus making the second interact faster.

This still looks as a good idea to me, so please read the original code at https://malabares.cancamusa.net/home/pub/14/ But the following is fixed so that there is only one interact, and sagecell works. There might be another way yto

## Dimensional Explorer

By Eviatar Bach

Renders 2D images (perspective or spring-layout) and 3D models of 0-10 dimensional hypercubes. It also displays number of edges and vertices.

## Crofton's formula

by Pablo Angulo. Illustrates Crofton's formula by throwing some random lines and computing the intersection number with a given curve. May use either solve for exact computation of the intersections, or may also approximate the curve by straight segments (this is the default).

## Banchoff-Pohl area

by Pablo Angulo. Computes the Banchoff-Pohl "area enclosed by a spatial curve", by throwing some random lines and computing the linking number with the given curve. Lines not linked to the given curve are displayed in red, linked lines are displayed in green.

interact/geometry (last edited 2019-11-15 08:20:36 by chapoton)