On Thursday, 25 August 2022 at 07:23:41 UTC-7 Kwankyu Lee wrote: > But an intuitive way (or an object-oriented way ?) is to get the necessary > information from the line segment. Thus if L is the line segment, I do p = > L.mid_point(); r = L.length() / 2. Then circle(p, r) will do the work. >
That sounds like the model that geogebra uses. Geogebra is immensely useful for teaching and simple illustrations especially because it's point-and-click and it's designed with basically the level of first year calculus in mind. Plus it can export to very efficient tikz, which makes it easy to make point-and-click pictures and still have things mathematically accurate (for instance, points can "snap" to nearby graphical objects, including graphs of functions. It could be interesting to have "constructive geometry" objects in python (sympy?) or sage, but I suspect that should start as separate objects from graphics objects to start with (although you could try subclassing). I do think that having a graphical interface such as geogebra has is really a plus for these applications, though, so I have some doubts on whether you'd be able to successfully compete with it. Personally, I think the graphics objects in sage should primarily be such that it is very easy to get at the underlying mathplotlib objects. In my experience, the tweaking of graphics for publication is what takes by far the most time, so the more interface for that the better. Matplotlib has a lot of use documentation, and examples, so being able to apply the knowledge obtained from there helps. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/50751c75-6488-40ff-848d-80bf5c5d04d6n%40googlegroups.com.