福建省科學技術信息研究所 劉懷北
?
關于Google日歷中事件排列算法的實現
福建省科學技術信息研究所 劉懷北
Google Calendar作為一款基于事件的日歷系統,以友好的操作界面和實用的功能而著稱。在事件的顯示方面,通過自適應調整事件寬度的方式進行排列,避免事件之間的重疊,直觀地反映事件的時間與分布。該文對Google Calendar中事件排列顯示的方式進行了解析,對其中的概念進行了抽象與定義,并提出了一種相應的算法實現。
Google Calendar 功能 事件排列算法
Google Calendar[1]作為Google在線服務的一個重要組成部分,以其簡潔易用的操作界面、全面實用的功能以及豐富而強大的插件,贏得了廣大用戶的青睞。在顯示事件的方式上,Google Calendar通過自適應調整事件寬度進行排列的方式來處理時間上存在重疊的事件,從而使得用戶能夠一目了然地查看事件的時間與分布。
本文通過對該事件顯示方式進行一系列的解析,闡述自適應調整寬度進行排列的目的與方法,構造并提出一種相應的算法實現。
如下圖1所示,不同情況下事件的顯示方式可以歸納為以3種:
● 自然排列:每個事件都完整的顯示,并占據整列;
● 重疊排列:每個事件都占據整列顯示,后面的事件會遮蓋前面的事件;
● 自適應寬度排列:每個事件各占據約整列寬的一半,并且完整顯示。

圖1 事件的3種排列顯示方式
顯然,當2個事件之間存在重疊的情況下,第3種排列顯示方法要比第2種方法更有效,用戶能夠直觀地看到2個事件的時間跨度,而第2種重疊排列的顯示方式則無法反映出第1個事件在何時結束,用戶必須借助文字信息才能做出判斷。……