[Scilab-users] xsetetch and xgetetch incompatible definitions of "frect"

Samuel Gougeon sgougeon at free.fr
Sat Nov 26 17:09:56 CET 2016


Le 26/11/2016 16:14, Samuel Gougeon a écrit :
> Le 26/11/2016 08:52, Antoine Monmayrant a écrit :
> .../...
>> Two issues:
>>
>> 1) the help pages are missing description of most of the parameters,
>>
> Parameters description is not missing. It is just written for 
> developers that are not users ;):
> Format and datatype of the parameter, that's all. No need to know what 
> it represents. Any such need?
> I am jocking, but by the way most of pages are written in this way. 
> Most of pages need a full overhaul by advanced users.
> As a contributor, you are welcome, most likely because you know how 
> much time you loose because of a poor documentation, vs how much time 
> you would save + using a good doc - contributing to write it.
>
>> 2) the two functions are apparently not using the same definition of frect:
>> >
>> >     plot2d();
>> >     [wrect,frect,logflag,arect] = xgetech():
>> >     xsetech(wrect, frect)// does not work for the scale part, ie frect
>> >        at line    65 of function xsetech ( /pathtoscilab/share/scilab/modules/graphics/macros/xsetech.sci line 79 )
>> >        Error : Min and Max values for one axis do not verify Min <= Max.
>> >     xsetech(wrect, [frect(1),frect(3),frect(2),frect(4)]) // works fine, scale un changed
>>
> I don't see that, for instance using the examples. Could you please 
> provide a clear example setting parameters with xsetech() and reading 
> them back from xgetech(), that would not match? Thanks!


Arg, ok, sorry for misreading your example.

help xgetech() tells: |
"The rectangle [xmin, ymin, xmax, ymax] given by frect.."
while it actually returns [xmin xmax ymin ymax] that matches 
gca().data_bounds

help xsetech tells: "frect = [xmin, ymin, xmax, ymax]"
and that's the way it works.

The bug was introduced in xgetech() in 2012 when xgetech() became a 
macro instead of formerly a builtin function.
This shows that
|

  * |xgetech() is very few used. Otherwise, the bug would have been
    spotted before.|
  * |frect from the old xgetech() did not match gca().data_bounds. This
    was cryptic.|
  * |xsetech() does not accept gca().data_bounds as frect, but a puzzled
    version of it. It is a cryptic usage.|

|So, here is a *Scilab Enhancement Proposal (SEP)*:
|

  * |xgetech:|
      o |fix the code of xgetech.sci in order to match the old xgetech()
        version|
      o |set xgetech as obsolete, but keep its code (for back-compatibility)
        |
      o |undocument it|
  * xsetech:
      o extend subplot() to replace xsetech().
        Additional subplot() syntaxes to be designed. The new input
        formats should be the ones of the unpuzzled gca(). attributes
      o undocument xsetech() to make it a private internal function.

What do you think about that?

Samuel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20161126/98342b54/attachment.htm>


More information about the users mailing list