phetsims / color-vision

"Color Vision" is an educational simulation in HTML5, by PhET Interactive Simulations.
http://phet.colorado.edu/en/simulation/color-vision
GNU General Public License v3.0
1 stars 7 forks source link

Floating point error for scale:0.64 #23

Closed samreid closed 10 years ago

samreid commented 10 years ago

For certain values of the iconOptions scale in SingleBulbScreenView, we are seeing this exception:

createIdentityArray Matrix3.js?1402936628527:31
Matrix3 Matrix3.js?1402936628527:41
(anonymous function) Matrix3.js?1402936628527:837
Matrix3.translationTimesMatrix Matrix3.js?1402936628527:872
Transform3.prependTranslation Transform3.js?1402936628527:76
Node.prependTranslation Node.js?1402936628527:1135
Node.translate Node.js?1402936628527:987
Node.translate Node.js?1402936628527:995
Node.setCenter Node.js?1402936628527:1220
center Node.js?1402936628527:2208
Panel.updateBackground Panel.js?1402936628527:53
(anonymous function) Panel.js?1402936628527:58
FixedNodeEvents.proto.fireEvent FixedNodeEvents.js?1402936628527:98
Node.validateBounds Node.js?1402936628527:408
Node.validateBounds Node.js?1402936628527:415
Node.validateBounds Node.js?1402936628527:415
Node.getBounds Node.js?1402936628527:726
Node.getWidth Node.js?1402936628527:1353
width Node.js?1402936628527:2239
Panel.updateBackground Panel.js?1402936628527:49
(anonymous function) Panel.js?1402936628527:58
FixedNodeEvents.proto.fireEvent FixedNodeEvents.js?1402936628527:98
Node.validateBounds Node.js?1402936628527:408
Node.validateBounds Node.js?1402936628527:415
Node.validateBounds Node.js?1402936628527:415
Node.getBounds Node.js?1402936628527:726
Node.getWidth Node.js?1402936628527:1353
width Node.js?1402936628527:2239
Panel.updateBackground Panel.js?1402936628527:49
(anonymous function) Panel.js?1402936628527:58
FixedNodeEvents.proto.fireEvent FixedNodeEvents.js?1402936628527:98
Node.validateBounds Node.js?1402936628527:408
Node.validateBounds Node.js?1402936628527:415
Node.validateBounds Node.js?1402936628527:415
Node.getBounds Node.js?1402936628527:726
Node.getWidth Node.js?1402936628527:1353
width Node.js?1402936628527:2239
Panel.updateBackground Panel.js?1402936628527:49
(anonymous function) Panel.js?1402936628527:58
FixedNodeEvents.proto.fireEvent FixedNodeEvents.js?1402936628527:98
Node.validateBounds Node.js?1402936628527:408
Node.validateBounds Node.js?1402936628527:415
Node.validateBounds Node.js?1402936628527:415
Node.getBounds Node.js?1402936628527:726
Node.getWidth Node.js?1402936628527:1353
width Node.js?1402936628527:2239
Panel.updateBackground Panel.js?1402936628527:49
(anonymous function) Panel.js?1402936628527:58
FixedNodeEvents.proto.fireEvent FixedNodeEvents.js?1402936628527:98
Node.validateBounds Node.js?1402936628527:408
Node.validateBounds Node.js?1402936628527:415
Node.validateBounds Node.js?1402936628527:415
Node.getBounds Node.js?1402936628527:726
Node.getWidth Node.js?1402936628527:1353
width
samreid commented 10 years ago

The issue is that Panel.js is getting into a cycle with the width oscillating between 16 and 15.999999998 or so. So this is a floating point error in Panel.js.

aaronsamuel137 commented 10 years ago

This was fixed in phetsims/sun#110. Closing