Our geometry lab has a good deal of existing code for hyperbolic geometry, and one of my goals this summer is to port it to Sage. I spoke with Bill Goldman, who heads the lab, and he's on board with GPLing the code and releasing it into the Sage code base if that's something people want.
Right now the code does: 1. Drawing geodesics, segments, and polygons in the Poincare disk and upper half-plane models, etc (e.g. what might be considered hyperbolic graphics primitives) 2. visualization of the action of Mobius transformations on CP^1, also visualizing stereographic projection 3. Some routines for spherical geometry 4. Visualizing Schottky systems, and several other interactive educational demonstrations 5. Some basic tessellation code 6. Basic routines for working in (2,1) Minkowsi space (which can easily be generalized to other dimensions) 7. We're currently working on visualizing some Fricke and Teichmueller spaces. Most of the code exists in the form of Mathematica notebooks. Alternately, if somebody else prefers to port the code to sage, I can provide the Mathematica notebooks, some of which can be found online here: http://egl.math.umd.edu/software.html I'd personally love to see much of this functionality built into sage. We home-grow this software for research purposes, but I'm sure there are many other people who have similar needs. Best, Greg On May 28, 4:28 pm, Vincent D <20100.delecr...@gmail.com> wrote: > The main actual problem I see for plotting is that transformation must > be relative to the ambient space. I would like to be able to see the > plane as a stereographic projection of the 2-dimensional sphere (and > then act with SL(2,C) as homography) but then the straight lines do > not correspond any more to segment in the plane we must allow circle > arcs as well. I thought about something like > > {{{ > sage: Polygon([(2, 1), (1.34, 2), (4, 3.2)]) # a polygon in the > euclidean space > sage: HH = HyperbolicPlane() > sage: x0 = HH(1+I); x1 = HH(2+3*I); x3 = HH(2+I) > sage: Polygon([x0, x1, x2]) # a polygon in the hyperbolic plane > sage: DD = HyperbolicDisc() > sage: x0 = DD(0.34 + 0.1*I); x1 = DD(0.5); x2 = DD(0.34-.5*I) > sage: Polygon([x0, x1, x2]) # a polygon in the hyperbolic disc > > }}} > > At first I thought this already existed, but sure enough, disk((2,3), > > 1,angle=(pi/2,pi),fill=False) only gives an empty sector, not an arc. > > I highly recommend that you open a regular Trac ticket for this > > functionality and post this patch - as you saw, creating the class is > > a VERY straightforward combination of the Circle and Disk classes. > > I opened the ticket 9076 for arc plotting > > Thank you for your answers, I'm looking carefully at what Helena > Verrill did, > Vincent -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org