Problem with Point>>setR:degrees:
David N. Smith (IBM)
dnsmith at watson.ibm.com
Fri Jan 14 22:36:26 UTC 2000
I've had a problem with Point>>#r:degrees:, which calls the instance
method #setR:degress:, which truncates the x and y values it computes:
setR: rho degrees: theta
| radians |
radians _ theta asFloat degreesToRadians.
x _ (rho asFloat * radians cos) asInteger.
y _ (rho asFloat * radians sin) asInteger.
Other point creation methods do not truncate (or round) values to integers.
The truncation causes the point to get 'smaller'. I was repeatedly
using #r:degrees: on points in a closed curve and the curve rapidly
shrunk down to nothing. Nice visual effect, but not what I wanted.
I suggest that the asInteger be removed from the method and that any
callers (there are 8-10 of them through Point>>#r:degrees:) be fixed
to truncate their arguments if that is the right thing to do.
An alternative is to use #rounded, but I have no idea what effect
that would have on my code or the other calls.
Any comments before I go make the changes? I'm currently using a copy
of #setR:degrees without the #asInteger and it works fine for my
David N. Smith
IBM T J Watson Research Center
Any opinions or recommendations
herein are those of the author
and not of his employer.
More information about the Squeak-dev