How does holding a hair against a computer screen produce B&W (when held horizontally) and visible light spectrum (when held vertically) patterns? If I hold a hair up to my Dell XPS 13 IPS screen at varying angles, the following patterns result:

In this one, particularly, you can see the frequency of the pattern/colour oscillations changing with the angle, as the hair curls right at the end (I also just want an excuse to include this, because it looks awesome).

Things to note:


*

*The more diagonal, the greater the frequency of these colour oscillations

*The more vertical, the more colourful/vibrant the pattern

*The more horizontal, the more black/white/grayscale the pattern

*The variation in the frequency of the colour oscillation on a given strand is due to the curvature in the hair. If I hold it perfectly straight with a second hand, there is no oscillation at all, but a single, pure colour, the entire length.

*My screen is the matte, 1920 by 1080px, IPS screen of the Dell XPS 13. If I zoom in on it with a clip-on macro phone lens, this is what I see:



I have some ideas of how this could come about, but the exact physics, e.g. how the full visible spectrum is reproduced when the incident colours are (equal intensity) red, green and blue and a more quantitative explanation of the period of oscillations than my 'it depends on angle' is not apparent to me.
I'm very curious to hear any explanations of these phenomena!
(Sorry if the tags are inaccurate.)
 A: You first need to understand that a monitor only produces 3 colours (red, green, blue).All other colours are produces by varying the intensity of these three. If all 3 are off you get black at that position; all fully on gives white. If one or two of the colours are off, or if they are at intermediate intensity, you get different colours and shades.
What's happening in your case is that, with the hair (nearly) vertical, it tends to obstruct one of the three colours more than the others. 
On a white screen you see equal intensities of all 3 colours. Assume that the hair blocks a blue pixel. In that case, what you see at that position is not white but red + green, which is yellow. If not all of the blue is blocked you will see a lighter yellow. If some of red or green is also blocked, you see correspondingly different colours.
At slightly different horizontal positions, the obscured colour is different and hence the displayed colour is also different. As a result you see different colours at different horizontal positions. If you hold the hair at a different angle, the pattern also changes because the blocked colours change.
You will notice that all pixels on the screen are rectangular: they are three times higher than they are wide. When you hold the hair horizontally it tends to block all three colours by the same amount, and hence the white changes into a shade of grey, down to black if the extinction is 100%.
The pattern also depends on the thickness of the hair. If the hair were as wide as or wider than a pixel (an RGB triplet), it would block the entire pixel, and the effect would not be as noticeable: you'd see a black strip with possibly a little colour at the edges here and there.
The effect you are seeing is called a Moiré pattern. These patterns show up in many places. For example if you hold 2 pieces of flyscreen above each other you will see a pattern of light and dark stripes. Wikipedia has a good article explaining Moiré patterns, and includes calculations you can use to calculate the light and dark parts of the pattern.
