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.

Reply via email to