999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關(guān)于Google日歷中事件排列算法的實現(xiàn)

2012-04-24 06:26:50福建省科學技術(shù)信息研究所劉懷北
海峽科學 2012年4期
關(guān)鍵詞:用戶方法

福建省科學技術(shù)信息研究所 劉懷北

?

關(guān)于Google日歷中事件排列算法的實現(xiàn)

福建省科學技術(shù)信息研究所 劉懷北

Google Calendar作為一款基于事件的日歷系統(tǒng),以友好的操作界面和實用的功能而著稱。在事件的顯示方面,通過自適應調(diào)整事件寬度的方式進行排列,避免事件之間的重疊,直觀地反映事件的時間與分布。該文對Google Calendar中事件排列顯示的方式進行了解析,對其中的概念進行了抽象與定義,并提出了一種相應的算法實現(xiàn)。

Google Calendar 功能 事件排列算法

0 引言

Google Calendar[1]作為Google在線服務(wù)的一個重要組成部分,以其簡潔易用的操作界面、全面實用的功能以及豐富而強大的插件,贏得了廣大用戶的青睞。在顯示事件的方式上,Google Calendar通過自適應調(diào)整事件寬度進行排列的方式來處理時間上存在重疊的事件,從而使得用戶能夠一目了然地查看事件的時間與分布。

本文通過對該事件顯示方式進行一系列的解析,闡述自適應調(diào)整寬度進行排列的目的與方法,構(gòu)造并提出一種相應的算法實現(xiàn)。

1 事件的排列顯示

如下圖1所示,不同情況下事件的顯示方式可以歸納為以3種:

● 自然排列:每個事件都完整的顯示,并占據(jù)整列;

● 重疊排列:每個事件都占據(jù)整列顯示,后面的事件會遮蓋前面的事件;

● 自適應寬度排列:每個事件各占據(jù)約整列寬的一半,并且完整顯示。

圖1 事件的3種排列顯示方式

顯然,當2個事件之間存在重疊的情況下,第3種排列顯示方法要比第2種方法更有效,用戶能夠直觀地看到2個事件的時間跨度,而第2種重疊排列的顯示方式則無法反映出第1個事件在何時結(jié)束,用戶必須借助文字信息才能做出判斷。不能想象,在更多事件之間存在更多重疊的情況下,第2種排列顯示方式對于用戶來說是毫無意義的。

2 自適應寬度排列算法

自適應寬度排列方式的優(yōu)點在于能夠通過調(diào)整事件在列表中的顯示寬度和水平位置來降低或避免事件顯示時的重疊。為此,可以通過2個步驟來實現(xiàn):(1)查找在時間上存在重疊的事件,建立連續(xù)重疊事件集合;(2)根據(jù)重疊的情況安排事件顯示的寬度和水平位置。

2.1 連續(xù)重疊事件集合

如果事件A與事件B之間存在時間重疊,稱A與B直接重疊;如果事件B與事件C也直接重疊,則事件A重疊可達C;如果事件C重疊可達事件E,則事件A也重疊可達E。

圖2 連續(xù)重疊事件集合示例

連續(xù)重疊事件集合(以下簡稱為COE集合)是指在連續(xù)時間區(qū)域上,所有能夠通過重疊連接的事件所組成的集合。任意2個屬于該集合的事件A和B,至少滿足以下2個條件之一:①A和B直接重疊;②A重疊可達B。

如圖2所示,事件ABCDE形成了COE集合1,事件FH形成了COE集合2。值得指出的是,任何集合1中的事件都無法重疊達到任何集合2中的事件。

2.2 建立COE集合

定義COE集合類,該類維護一個事件數(shù)組evtList,存儲所有屬于該集合的事件,并按照事件發(fā)生時間順序排列。

建立COE集合的過程可以通過按照時間順序遍歷所有事件一次完成,其具體算法如下(JavaScript[2]偽代碼):

其中sortByTime方法將evts數(shù)組按事件起始先后排序;belongWhichCOE方法在coes數(shù)組中查找,返回傳入事件所屬的COE集合,如果未找到,則返回null;insert方法則將事件插入到COE集合中適當位置。

2.3 自適應寬度排列

建立COE集合數(shù)組后,需要為每個COE集合中的事件計算寬度和水平位置,為此需要根據(jù)各事件間的重疊情況對事件進行分列顯示,其具體算法如下(JavaScript偽代碼):

上述COE類的insert方法將完成事件的插入和列的建立與更新;findColumn方法用于尋找空隙的列來插入事件;而isOverlap方法則負責判斷列中是否有空隙能夠容納傳入的事件;最后layout算法完成對COE集合中事件的排列。

因此,最終整個算法可以歸納為如下過程。

[1] Google日歷在線系統(tǒng),https://www.google.com/calendar/render?tab=mc

[2] John Resig. Versions of JavaScript. Ejohn.org, 2009

猜你喜歡
用戶方法
學習方法
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: 香蕉久久国产超碰青草| 亚洲国产91人成在线| 亚洲一区二区视频在线观看| 国产丝袜无码精品| 5555国产在线观看| 精品国产免费观看一区| 性欧美在线| 久久天天躁狠狠躁夜夜2020一| 亚洲色图欧美激情| 亚洲一级无毛片无码在线免费视频 | 欧美一区二区三区香蕉视| 国产一区二区三区在线精品专区 | 天堂亚洲网| 91网站国产| 亚洲第一中文字幕| 国产网站在线看| 久久这里只有精品免费| 亚洲欧美色中文字幕| 黄色在线不卡| 国产免费福利网站| 91精品国产91久久久久久三级| 幺女国产一级毛片| 亚洲清纯自偷自拍另类专区| 成人综合网址| 国产成人狂喷潮在线观看2345 | 四虎永久免费网站| 亚洲天堂日韩av电影| 国产专区综合另类日韩一区| 一本一道波多野结衣av黑人在线| 福利国产微拍广场一区视频在线 | 亚洲第一精品福利| 凹凸国产分类在线观看| AV无码一区二区三区四区| 99久久精品国产麻豆婷婷| 福利在线不卡一区| 成年人免费国产视频| 亚洲天堂伊人| 亚洲,国产,日韩,综合一区| 国产h视频免费观看| 人人妻人人澡人人爽欧美一区| 亚洲精品国产自在现线最新| 亚洲av色吊丝无码| 特级做a爰片毛片免费69| 毛片免费在线视频| 久久亚洲国产一区二区| 久久熟女AV| 嫩草影院在线观看精品视频| 亚洲欧美日韩天堂| 九色综合视频网| 亚洲日本中文综合在线| 国产亚洲精品自在线| 国产成人艳妇AA视频在线| 黄色三级毛片网站| 国产综合网站| 国产美女无遮挡免费视频| a毛片免费观看| 九九九国产| 天天做天天爱夜夜爽毛片毛片| 99久久国产综合精品女同| 亚洲免费三区| 丰满人妻一区二区三区视频| 97色伦色在线综合视频| 免费国产一级 片内射老| 国产成人免费观看在线视频| 亚洲男人天堂2020| 日韩专区第一页| 免费人成视网站在线不卡| 欧美a网站| 91国内在线视频| 免费人成又黄又爽的视频网站| 伊人成人在线| 99视频只有精品| 欧洲日本亚洲中文字幕| 蜜臀av性久久久久蜜臀aⅴ麻豆| 婷婷久久综合九色综合88| 精品午夜国产福利观看| 91亚洲国产视频| 欧美福利在线观看| 欧美黄网站免费观看| 亚洲精品第五页| 国产乱子伦视频在线播放| 欧美综合在线观看|