知乎有一個熱門問題:這兩個球顏色真的一樣嗎塞赂?。顯然這是一個錯覺昼蛀。很多人都會去取顏色值驗證宴猾,這一方法我就跳過了圆存。作為一個碼農(nóng),逆向思維仇哆,我們可以構造這樣一個錯覺沦辙。原問題在流傳的過程中,因圖片或視頻壓縮讹剔、轉(zhuǎn)碼油讯,顏色可能會發(fā)生變化;本文直接用相同的顏色構造這一錯覺辟拷,更能說明問題撞羽。
作為一個不精通二三十種語言的陳年碼農(nóng)衫冻,選擇Mathematica來做這個事诀紊,應該是比較簡潔的。
選取顏色隅俘,畫一個圓
為了簡化邻奠,我們直接畫圓(圓盤),而不是畫球为居。球體在渲染中有明暗的變化碌宴,顏色值并不是恒定的,用單色的圓更能說明問題蒙畴。
因為錯覺在于藍和綠之間贰镣,所以選一個不男不女(不藍不綠)的顏色c1作為圓的顏色,也就是RGB中的G和B相等膳凝。c2和c3作為背景和圓點的顏色碑隆。c1, c2, c3的取值使它們在數(shù)字上有對稱之美。
小說明:Mathematica的RGB顏色是歸一化的蹬音,乘上255對應于通常計算機領域的8位顏色上煤。
加上背景色
加上兩種不同的背景色。圓的顏色看起來還一樣嗎著淆?
還行劫狠,似乎只有明暗的些許差別。
加上圓點永部,見證奇跡
對稱地加上兩種顏色的小圓點独泞。
奇跡出現(xiàn)了!一個變藍了苔埋,一個變綠了懦砂。
其它嘗試,作為對比
如果圓點再小一點,效果其實就沒有那么好了孕惜。(其實這里可以做一個視頻,懶跳了晨炕。衫画。)
如果使用同樣大小同樣多的隨機圓點,效果也沒有均勻分布的好瓮栗。
解釋
有一個古老的心理學流派削罩,叫作格式塔心理學,或者完形心理學费奸,就是描述知覺的統(tǒng)合現(xiàn)象的弥激。
人感知到的兩個圓的顏色其實是疊加了小圓點的,是合成色愿阐,而不是圓的本色微服,最后的結果自然不同。說簡單點缨历,其實就和電視機顯示器的RGB點陣差不多的道理以蕴,人看到的是RGB的合成顏色,而不是點陣辛孵。
精心選取一個介于臨界點的顏色丛肮,受到小圓點顏色的疊加影響后,很容易在知覺上滑向不同的典型顏色(藍和綠)魄缚。