I agree. Thank you for reporting this case.
There has been some confusion on this subject before. For example, see this topic
. It's about GR.Touch, which returns real coordinates. You need to convert them to virtual screen coordinates so you divide by the scale factor.
Your comment is about GR.Bounded.Touch. The two commands have nearly identical syntax:
[command] [flag] [list of real screen coordinates]
But in fact they are very different from each other:
GR.Touch coordinates are outputs
GR.Bounded.Touch coordinates are inputs
Both commands work with real screen coordinates, but GR.Scale allows programs to use virtual screen coordinates.
- Scale factor is defined as the ratio of real to virtual: sf = xr / xv
- To use the real coordinates returned by GR.Touch, you must divide them by the scale factor to get the virtual coordinates: xv = xr / sv
- To provide real coordinates as inputs to GR.Bounded.Touch, you must multiply your virtual coordinates by the scale factor: xr= xv * sv
The algebra is simple, but the English is confusing. In the linked topic, humpty reported that the GR.Touch entry was wrong, so I fixed it. It didn't occur to me, or apparently to anyone else, to check the inverse case to see if it was wrong, too. It was, but it's not obvious from the syntax that it is the inverse case!
Whatever, it will be better in the next release.