Closed zepumph closed 5 years ago
We need to also keep in mind that the arrows do not "disappear" in the descriptive experience. The smallest described category is "Force vectors tiny".
Personally, I think it would be nice if the vectors were still somewhat visible when "tiny", but I can live with it as long as other designers feel that "no visual appearance" is still conceptually "tiny".
In GFL the force range is currently set up so that with small forces the arrow basically disappears. Perhaps that is alright. Maybe though, we need to support different logic for GFL(B) to allow a minimum arrow width so it is always visible.
Currently, when the force dips below 10^-10 N, the vector completely disappears. This could be a good opportunity to discuss scaling and precision.
Alternatively, we could set a minimum vector size, perhaps something like this:
We need to also keep in mind that the arrows do not "disappear" in the descriptive experience. The smallest described category is "Force vectors tiny".
For GFL(B) this makes sense, but for Coulomb's Law it would be incorrect, because the force can actually be zero (if charge is zero). CL will need another category for "Force vectors zero", or similar.
I think it's important to keep the visual and descriptive experiences as parallel as possible, so adding a minimum vector size may be the way to go. @ariel-phet thoughts?
Since this issue involves Coulomb's Law I updated the table in https://github.com/phetsims/inverse-square-law-common/issues/76#issuecomment-515022872 so it now includes a zero and the potential "push" forces. I haven't yet worked deeply on the descriptions for Coulomb's Law.
I agree with @arouinfar, that descriptions should be somewhat parallel with the visuals. Since forces can be zero in Coulomb's Law, it would make sense to me to keep the force vectors showing a tiny bit except when the force is zero.
I am OK with a minimum size. When vectors are of a reasonable size you get some visual "scaling" effect references (eg oh, look the force is now approximately double). However, when the forces are this small (to be considered "tiny") I think the minimum size vector shown above will not cause any confusion. It pretty clearly send the "this is a very small quantity" message.
But yes, I agree, in Coulomb's law where the force can be truly zero, having a zero vector is important, and I also agree that keeping the experiences parallel is the ideal.
@arouinfar, when ready can you please consolidate this discussion into a recommendation for me to implement. I think it would be possible to keep a minimum arrow and flip it when the forces change direction in CL. That doesn't handle the "zero" case though.
Unassigning for now.
@zepumph for GFL(B), please add a minimum arrow size. I think this would be about the right size:
Here is what the arrows now look like. @arouinfar it was a good idea to split it up based on GFL/CL. That was easy as we were already doing that for the max arrow width. Implemented in the above commits.
Closing
As part of https://github.com/phetsims/inverse-square-law-common/issues/76, @arouinfar and I discussed that the arrow width needs to be able to go to zero for Coulombs Law to accept a zero charge, but we were on the fence if this was the best way to display gravity force lab (basics). In GFL the force range is currently set up so that with small forces the arrow basically disappears. Perhaps that is alright. Maybe though, we need to support different logic for GFL(B) to allow a minimum arrow width so it is always visible. My vote (as definitely not a designer) is to leave it as is, because I like that it makes the code simpler, and that I don't think it effects the UX too much. Also note that the current published version of GFL has arrows that can disappear with small force values.
Over to you @arouinfar to discuss an let me know what to do.