Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requirements for Geometric Optics: Basics #2

Closed
pixelzoom opened this issue Nov 11, 2021 · 13 comments
Closed

Requirements for Geometric Optics: Basics #2

pixelzoom opened this issue Nov 11, 2021 · 13 comments

Comments

@pixelzoom
Copy link
Contributor

In 11/11/21 design meeting, and in phetsims/geometric-optics#253 (comment), we decided to pursue a Basics version of this sim, rather than adding an Intro screen.

@pixelzoom
Copy link
Contributor Author

If it is indeed a goal to have a Basics version of this sim, I need to know what it looks like so that I can anticipate that during implementation. The longer I don't have that information, the more likely it is that something will need to be reworked to support a Basics version.

@pixelzoom
Copy link
Contributor Author

pixelzoom commented Dec 20, 2021

@arouinfar @kathy-phet @ariel-phet @pixelzoom had a design meeting on 12/20/2021. Full meeting notes are in the design document.

Here's a summary of how Basics differs from the full version:

  • Only convex lens & flat mirror, no radio buttons to select optic shape
  • Change icon for the Mirror screen to a flat mirror
  • Move flat mirror to same screen coordinates as lens
  • No Second Point (hide checkbox, a single optical object for all scenes)
  • Label 'Object' and 'Image', not 'Object 1' and 'Image 1'
  • Hide checkboxes for “Focal Points”, "2F Points" on Mirror screen
  • Ignore ?focalLengthControl, default focalLengthControlTypeProperty to 'direct', no Options dialog
  • ?enable2F defaults to true

@pixelzoom
Copy link
Contributor Author

Slack:

Chris Malley 2/17/2022 4:42 PM
Question about the requirements for GO:Basics, as captured in our 12/20/21 meeting notes, it says:

Remove Second Point

I’m assuming that this means to remove the 2nd arrow, 2nd lamp, and 2nd point-of-interest on the frame objects (and the “Second Point” checkbox, of course). So GO:Basics only has a single optical object, in all “scenes”. Is that correct?

Ariel Paul 2/17/2022 4:46 PM
That is my notion

Kathy Perkins 2/18/2022 6:37
OK with me.

Amy Rouinfar 2/18/2022 8:30
Yes, that’s correct.

@pixelzoom pixelzoom assigned pixelzoom and unassigned arouinfar Feb 21, 2022
@pixelzoom
Copy link
Contributor Author

pixelzoom commented Feb 22, 2022

  • This issue should be migrated to geometric-optics-basics after that repo is created.

@pixelzoom pixelzoom changed the title Design a Basics version of this sim. Requirements for Geomertic Optics: Basics Feb 22, 2022
@pixelzoom pixelzoom transferred this issue from phetsims/geometric-optics Feb 22, 2022
@pixelzoom pixelzoom changed the title Requirements for Geomertic Optics: Basics Requirements for Geometric Optics: Basics Feb 22, 2022
pixelzoom added a commit that referenced this issue Feb 22, 2022
@phetsims phetsims deleted a comment from samreid Feb 22, 2022
@pixelzoom
Copy link
Contributor Author

pixelzoom commented Feb 22, 2022

Notes to myself... Here are the things that need to know whether we're running the Basics version, and the "constructor chains" to get to them.

Concave lens only:
LensModel > Lens options.opticShapes

Flat mirror only:
MirrorModel > Mirror options.opticShapes

Mirror origin centered on the screen:
MirrorScreenView > options.getViewOrigin

Checkbox visibility:
LensScreenView & MirrorScreenView > GOSCreenView > GOControlPanel > VisibilityCheckboxGroup > ‘Second Point’ object literal
MirrorScreenView > GOSCreenView > GOControlPanel > VisibilityCheckboxGroup > ‘Focal Points (F)’ object literal
MirrorScreenView > GOSCreenView > GOControlPanel > VisibilityCheckboxGroup > ‘2F Points’ object literal

Object/Image labels:
LensScreenView & MirrorScreenView > GOScreenView > ArrowObjectSceneLabelsNode: objectLabelString
LensScreenView & MirrorScreenView > GOScreenView > FramedObjectSceneLabelsNode > ArrowObjectLabelNode
LensScreenView & MirrorScreenView > GOScreenView > FramedObjectSceneLabelsNode > ArrowImageLabelNode
LensScreenView & MirrorScreenView > GOScreenView > LightObjectSceneLabelsNode > LightObjectLabelNode
LensScreenView & MirrorScreenView > GOScreenView > LightObjectSceneLabelsNode > LightImageLabelNode

@pixelzoom
Copy link
Contributor Author

pixelzoom commented Feb 23, 2022

Regarding this requirement:

  • Label 'Object' and 'Image', not 'Object 1' and 'Image 1'

I made the Basics version a bit more flexible than this. By default, numbered labels are not used in the Basics version. But if a second object/image is made visible (by setting secondPointVisibleProperty to true via Studio or PhET-iO) then the sim will switch to numbered labels.

@pixelzoom
Copy link
Contributor Author

@arouinfar Geometric Optics: Basics is ready for review. The PhET-iO API (and Studio tree) is identical to Geometric Optics; we'll discuss that in #3. But I consider it a nice "feature".

@pixelzoom pixelzoom assigned arouinfar and unassigned pixelzoom Feb 23, 2022
pixelzoom added a commit that referenced this issue Feb 23, 2022
pixelzoom added a commit to phetsims/geometric-optics that referenced this issue Feb 23, 2022
@pixelzoom
Copy link
Contributor Author

An additional change we could make in the Mirror screen is to allow free dragging of the framed objects, and add the drag-locked toggle button. But I'm reluctant to do that until PhET-iO decisions have been made in #3.

@arouinfar
Copy link
Contributor

@pixelzoom the sim looks great! I agree that it would be a big improvement to allow free-dragging of the object on the Mirror screen, but it makes sense to defer until #3 is settled.

@pixelzoom
Copy link
Contributor Author

Tracking free-dragging in the Mirror screen in #5.

@pixelzoom
Copy link
Contributor Author

@arouinfar This is ready for review.

@pixelzoom
Copy link
Contributor Author

pixelzoom commented Mar 18, 2022

From implementation-notes.md...

... here's a summary of how Geometric Optics: Basics differs from Geometric Optics. Unless specifically noted, these differences can be "undone" via PhET-iO.

Lens screen:

  • Convex lens only. Possible to add concave lens via PhET-iO.
  • No radio buttons to select the optic shape.
  • No second optical object. Hide the "Second Point" checkbox.
  • Label 'Object' and 'Image', not 'Object 1' and 'Image 1', unless a second object is added via PhET-iO.

Mirror screen:

  • Flat mirror only. NOT possible to add concave and convex mirror via PhET-iO.
  • No radio buttons to select the optic shape.
  • Change screen icon to a flat mirror
  • Since we have only a flat mirror, move origin to the same screen coordinates as the Lens screen.
  • No second optical object. Hide the "Second Point" checkbox.
  • Label 'Object' and 'Image', not 'Object 1' and 'Image 1', unless a second object is added via PhET-iO.
  • Remove checkboxes for “Focal Points”, "2F Points" on Mirror screen. Not possible to add them.

Global:

  • Default focalLengthControlTypeProperty to 'direct', and remove "Focal Length control" from the Options dialog.
  • Default add2FPointsCheckboxProperty to true, so that "2F Points" checkbox is visible on Lens screen.

@arouinfar
Copy link
Contributor

Thanks for the summary @pixelzoom. Geometric Optics: Basics looks great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants