microsoft / calculator

Windows Calculator: A simple yet powerful calculator that ships with Windows
MIT License
29.52k stars 5.35k forks source link

Add Matrix & Vector Modes #517

Open michael-hawker opened 5 years ago

michael-hawker commented 5 years ago

Problem Statement Matrix and Vector math can be complicated and hard, but is a vital thing to understand in college-level math for various fields of study, especially computer graphics and artificial intelligence. Having a calculator to help with basic calculations can help users focus on the results and understanding than tedium after initial skills have been learned in class. By making matrices/vector math more discoverable and easier to process, we can make the skills required for these advanced fields more approachable.

Evidence or User Insights There are many online matrix calculators available. Having one available inbox that works offline would be a great benefit, just like #338.

Inspired by this comment on #512.

Proposal

I think these modes are combined as matrix math can lead to a vector which then may want to be manipulated. They could also have similar interfaces to be shared, so it could make sense for them to overlap. The keyboard should be contextual anyway and only highlight/enable operations that make sense for the current state of the calculator.

This mode should allow a user to visually set the vector/matrix/matrices size(s) and click with in each cell to enter values (or use number keys and return to enter a value and then proceed to next empty cell or arrow keys to navigate cells). They should be able to see a single matrix or two matrices to perform operations involving 1 or 2 matrices.

After performing an operation, the matrix display should update to show the resulting matrix/value. The user should be able to click within their history to also restore the original matrices states from before the operation (i.e. to go back a step and re-perform a different operation).

Goals

Non-Goals

Low-Fidelity Concept

image

Requested Assignment I'm just suggesting this idea. I don't want to implement it.

grochocki commented 5 years ago

Thanks for the feature suggestion! This is really well thought-out, and we really appreciate it. Let's keep this idea open for discussion so the community has the chance to provide feedback. Check out our New Feedback Process for more info on the user-centered process we follow for new feature development.

MicrosoftIssueBot commented 5 years ago

This is your friendly Microsoft Issue Bot. I've seen this issue come in and have gone to tell a human about it.

sirisian commented 5 years ago

A vector projection operator would be nice also.

Also as an ad-hoc suggestion the UX for inserting a matrix and vector should use the Word insert table control where the user clicks insert Matrix/Vector and sees:

image

This allows one to create a matrix or vector of any standard size in two clicks. Ideally though the insert matrix/vector view would always be visible in the matrix/vector mode and a single click would be required. (The first element would be focused so the user could then type the numbers rapidly after creating a matrix or vector.

ghost commented 5 years ago

We reviewed the pitch and would love to explore this idea further! The pitch is a great start, but there are still some open questions. I am moving this issue into planning to iron out some of those details and I created calculator-specs/matrix to track progress. A human will follow up with some feedback on your pitch shortly. Keep in mind that not all ideas that make it into the planning phase are guaranteed to make it to release. For more information on next steps, check out our spec workflow.

grochocki commented 5 years ago

Love the idea, but think it may be fairly ambitious depending on what features we include (e.g., will it show you solution steps?). Lots to think through in terms of UX.

ghost commented 4 years ago

@grochocki It would also be nice to have support for plotting vectors of the form r = xi + yj + zk in the graphing calculator. High school students would find it really helpful.

Should I open a separate issue for that?