phetsims / fourier-making-waves

"Fourier: Making Waves" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
6 stars 3 forks source link

Possible to set amplitude to values between increments #171

Closed arouinfar closed 3 years ago

arouinfar commented 3 years ago

Noticed while testing #170.

While playing the game on my phone, I checked my answer and was shown a frowny face. However, pressing "Show Answer" revealed that the values I checked were indeed the correct answer. It seems like I may have set the value to something in-between the 0.1 increments.

Here's an example of the answer I checked. The amplitude values are -1.3, -0.2, and -0.6. However, if you zoom it looks like the pink waveform is not perfectly aligned with the black guess. photo_2021-09-01 16 28 11

When I clicked "Show Answer" the amplitude values did not change, but the pink/black waves are now perfectly aligned. photo_2021-09-01 16 28 05

arouinfar commented 3 years ago

@pixelzoom this was observed in master on my Android phone, but I am pretty sure I have seen this before without realizing what was going on.

Troubleshooting information: !!!!! DO NOT EDIT !!!!! Name: Fourier: Making Waves URL: https://bayes.colorado.edu/dev/phettest/fourier-making-waves/fourier-making-waves_en.html?ea&brand=phet Version: 1.0.0-dev.47 (unbuilt) Features missing: applicationcache, applicationcache Flags: pixelRatioScaling User Agent: Mozilla/5.0 (Linux; Android 11; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.166 Mobile Safari/537.36 Language: en-US Window: 980x1534 Pixel Ratio: 3.5/1 WebGL: WebGL 1.0 (OpenGL ES 2.0 Chromium) GLSL: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium) Vendor: WebKit (WebKit WebGL) Vertex: attribs: 32 varying: 31 uniform: 256 Texture: size: 4096 imageUnits: 16 (vertex: 16, combined: 96) Max viewport: 16384x16384 OES_texture_float: true Dependencies JSON: {}

arouinfar commented 3 years ago

I think I've figured it out. Clicking the slider track will set the value to something that isn't perfectly divisible by 0.1. I rarely ever click on the slider track to set its value, but I accidentally did so when using my phone in #170.

For example, it looks like this answer should be correct: image

However, viewing the value in Studio reveals it is not in fact 0.6. image

If the user checks their answer, they will be told it is wrong. Technically, that's true, but it's still pretty poor UX.

pixelzoom commented 3 years ago

Good catch. Hopefully this isn't a general problem with common-code Slider and NumberControl.

pixelzoom commented 3 years ago

Fixed in the above commit. @arouinfar please confirm in master, for Discrete and Wave Game screens. Looking at amplitude*Slider.valueProperty in Studio, as you did in https://github.com/phetsims/fourier-making-waves/issues/171#issuecomment-910889141, is a good way to verify.

Please close if this looks OK.

arouinfar commented 3 years ago

Looks good in master @pixelzoom, thanks!