我们现在的点点点,好像完成了很多事情,很多小伙伴都将注意力集中到怎么让用户点着更舒服的研究上,好像已经忘了,为啥用户点一下就能达到他们想要的效果.
如果有一天,调试的过程中,你点击了鼠标没有得到想要的反应, 你于是疯狂的尝试,甚至换了几个鼠标,系统也重装了,还是不行,这应该怎么办?
知识决定创新,让我们来做个明白人,看看linux系统是怎么完成所点即所得的.
一. 用户的界面体验
表面上,我们操作了鼠标, 鼠标连接的到主机,主机连接到显示器,显示器上做了相应的相应.
好像鼠标移动速度和光标移动速度成线性关系,但是不是杠杆原理,也不是鼠标线拽着鼠标动的. [^v^] [-v-]
二. 程序员的界面体验
学了计算机后,我们知道,这其实都是操作系统帮我们管理的,像 内存硬盘处理器,鼠标键盘显示器 这些都在操作系统里面报道, 然后鼠标操作的时候会产生一个鼠标事件,事件到了操作系统后,操作系统会提醒相关的桌面应用程序进行相应.
三. 操作系统的界面实现
1. 窗口管理器
学习操作系统后,发现,居然里面还有个窗口管理器,听说这玩意儿可以控制窗口的大小位置和层次.
窗口管理器其实就是将我们的窗口程序外面包裹了一个控制区域,方便我们的窗口控制.
2. X11
再后来了解到图形界面其实是通过X应用来实现的, X更新到11版本后,就没大更新了,所以干脆叫X为X11,更具有标识性.
当然,还有3D的效果,Compiz:
说到3D,我们不得不提一个3D开源渲染项目 OpenGL. 这个东西也是做图像开发的, 界面说白了也是个图像,之间有啥联系呢.
其实x11有是C-S模型,服务器端就是管理鼠标键盘显示器的程序, 客户端就是我们接触用户程序,服务器接收到鼠标和键盘的事件后,会把事件传递给对应的用户程序,用户程序可以决定怎么去响应鼠标键盘鼠标, 怎么在屏幕上显示.
3. QT/GTK
这样应该是多麻烦丫, 于是有小伙伴就想到提前做好,后面的小伙伴直接调用就好了,这里面做得很好的有 QT 和 GTK这些, 其实浏览器也算是喔, html调用的都是浏览器实现了的图形单元, 这样很方便吧.
4. OpenGL
但是3D作图和2D的图像显示是不一样的,3D作画讲究的视觉变换,平面映射,各个角度对一个物体观看视觉呈现是不一样的,要做显示的话,需要大量的计算,于是就有了专门做3D处理的openGL项目.这个可以看看 计算机视觉 的相关知识进行补充.
##总结
所以事情就晓得了:
四. 后记
根据网上小伙伴们的介绍,我作出了自己的解释,希望对大家有所帮助.以后点击了一下鼠标,我们就知道为啥会出现相应的操作了.