Opened 11 years ago

Last modified 4 years ago

#3861 new defect

automatic line smoothing shouldn't be automatic, or should at least be documented

Reported by: mclean Owned by: was
Priority: major Milestone: sage-6.4
Component: graphics Keywords: line3d, Line, smoothing, corner_cutoff
Cc: kcrisman Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by chapoton)

line3d for instance calls Line in

/usr/local/sage/3.0.6/devel/sage/sage/plot/plot3d/shapes2.py

Which automatically applies some smoothing using corner_cutoff, which is buggy and poorly documented as in #3859

(See above Ticket for an example of how this can be bad.)

It is important that I plot lines directly, and automatic smoothing should either not be automatic, or should be documented, even for functions that do not reference the smoothing directly like in Line3d. Perhaps a 'smooth' keyword is more informative than the undocumented corner_cutoff.

The smoothing is done in the Line class object, and not in pmol, so it can (and should!) be selectively applied.

Fixing the referenced ticket is a workaround (set corner_cutoff = 1), but is very clunky, and currently does not even work.

Change History (9)

comment:1 Changed 11 years ago by robertwb

I like the idea of a smoothnes parameter, 0=False meaning don't smooth at all, 1=True being some good default, and something higher (say 2) to forceable splite the whole thing.

I agree it could be better documented, but I think smoothing is very useful when you are trying to visualize curves. Of course, if you're plotting stock data then it is really bad.

comment:2 Changed 10 years ago by jason

  • Report Upstream set to N/A

I also agree with Robert. Notice also that:

sage: my_points=[[0,0,0],[1,0,0],[0,1,0]]
sage: my_points_tuples=map(tuple,my_points)
sage: sage.plot.plot3d.shapes2.Line(my_points,corner_cutoff=0)
Traceback (most recent call last):
...
TypeError: unhashable type: 'list'

sage.plot.plot3d.shapes2.Line(my_points_tuples,corner_cutoff=0) #works
sage: sage.plot.plot3d.shapes2.Line(my_points_tuples, corner_cutoff=1)
Traceback (most recent call last):
...
TypeError: 'NoneType' object is unsubscriptable
sage: sage.plot.plot3d.shapes2.Line(my_points_tuples, corner_cutoff=.999) # works

comment:3 Changed 10 years ago by jason

That last error is already #3859

comment:4 Changed 6 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:5 Changed 6 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:6 Changed 6 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:7 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:8 Changed 5 years ago by chapoton

  • Description modified (diff)

comment:9 Changed 4 years ago by kcrisman

  • Cc kcrisman added
Note: See TracTickets for help on using tickets.