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

矢量圖算法生成系統(tǒng)的研究

2019-07-25 08:03:28鄭澤濤余健
現(xiàn)代計算機 2019年17期
關(guān)鍵詞:界面系統(tǒng)

鄭澤濤,余健

(韓山師范學(xué)院計算機與信息工程學(xué)院,潮州521041)

0 引言

自十八世紀(jì)中期,瓦特改良了蒸汽機之后,由一系列技術(shù)革命引起了從手工勞動向動力機器生產(chǎn)轉(zhuǎn)變的重大飛躍,這就是人們常說的第一次工業(yè)革命。自工業(yè)革命以來,機器所帶來的生產(chǎn)力遠遠超過了人工。隨著機器的產(chǎn)生,又出現(xiàn)了機器人。機器人脫離了空間的限制,可以自由移動,前進、后退、左轉(zhuǎn)、右轉(zhuǎn)都是可以實現(xiàn)的。光可以移動,還是不夠的,人們又給機器人加上了諸多感應(yīng)器,充當(dāng)機器人的眼睛、耳朵和手等[1]。

機器人的產(chǎn)生,也帶來了機器人編程,可是受到實物的限制,不能廣泛傳播,因為不可能讓每一個初學(xué)者都去購買機器人回來測試,畢竟這東西還是蠻貴的。此時,模擬機器人運行環(huán)境的程序的出現(xiàn)就剛好解決了這個問題,以RobotBASIC 為例,使用它可以很方便地在電腦上做各種關(guān)于機器人的測試。但是,僅僅依靠RobotBASIC 也無法解決一些問題,如矢量圖畫法的數(shù)據(jù)填充問題,此時開發(fā)工具的配合使用,就體現(xiàn)出它的強大之處,很多依靠RobotBASIC 自身無法解決的問題,可以通過配合其他開發(fā)工具,如VS2010 解決[2]。

本文主要是研究并開發(fā)一個矢量圖算法生成器,利用winForm 的可視化界面,為系統(tǒng)和用戶提供一個良好的交互環(huán)境,用戶只需要修改對應(yīng)的數(shù)值,就可以自動一鍵生成對應(yīng)的算法代碼,即解決了“矢量圖畫法的數(shù)據(jù)填充問題”,又為用戶保留了創(chuàng)新的空間[3]。

1 系統(tǒng)設(shè)計

1.1 需求

通過“矢量圖畫法”完成以下任務(wù):即通過機器人的移動、落筆、收筆,畫出自己的名字或者其他字符[4]。

系統(tǒng)需要解決以下問題:

(1)機器人如何實現(xiàn)矢量圖畫法

(2)如何把算法轉(zhuǎn)化為可視化參數(shù)

(3)如何把可視化參數(shù)轉(zhuǎn)化為算法代碼

1.2 系統(tǒng)總體設(shè)計

系統(tǒng)體系架構(gòu)圖和系統(tǒng)流程圖分別如圖1 和圖2所示。

圖1 系統(tǒng)體系架構(gòu)圖

圖2 系統(tǒng)流程圖

1.3 系統(tǒng)詳細設(shè)計

矢量圖原理其實就是利用二維數(shù)組存儲像素點,通過0 不畫1 畫的方式來畫。而在RobotBASIC 中,只有一維數(shù)組,即二維數(shù)據(jù)存在一維數(shù)組中,機器人走到每行的末尾時,由于下個點是下一行的開始,所以機器人必須從尾部重新跑回去起始點[5],如圖3 所示。

圖3 矢量圖行走邏輯

該模塊的主要功能是,把難以理解的算法參數(shù),轉(zhuǎn)化為用戶肉養(yǎng)可見的可視化參數(shù),用戶可以直接通過修改參數(shù),達到修改算法代碼的目的[6]。下面介紹以下常用的參數(shù)名:

(1)顯示文字:該參數(shù)輸入的是要顯示的字符,當(dāng)字符數(shù)為0 時無法生成代碼

(2)字體種類:該參數(shù)讀取了系統(tǒng)本地所有的字體種類供用戶選擇

(3)文字坐標(biāo):該參數(shù)設(shè)置文字顯示的(x,y)位置

(4)文字字體大小:該參數(shù)設(shè)置文字的字體大小

(5)旋轉(zhuǎn)點:該參數(shù)設(shè)置的是顯示界面的旋轉(zhuǎn)中心,初始坐標(biāo)為(400,300)

(6)旋轉(zhuǎn)角度:該參數(shù)設(shè)置的顯示界面的旋轉(zhuǎn)角度

(7)機器人半徑:該參數(shù)用于設(shè)置機器人的半徑,取值區(qū)間為[1,50],由于在RobotBASIC 中,機器人移動碰到邊緣時會出錯,該參數(shù)是為了保證代碼不會運行出錯

(8)僅顯示截取框內(nèi)容(勾選):該參數(shù)用于顯示和隱藏?zé)o效區(qū)域

(9)生成代碼(按鈕):點擊可以生成代碼

其中雙框截取同步模塊主要是為了給用戶提示無效區(qū)域。由于機器人碰到邊緣時會出錯,所以機器人的畫圖區(qū)域受其半徑影響,也就是在主界面邊緣往里半徑以內(nèi)的區(qū)域都是無法畫圖了。用戶可以直觀地看到無效區(qū)域中的內(nèi)容和實際上可以畫出來的內(nèi)容,如圖4 所示。

圖4 顯示和隱藏?zé)o效區(qū)域內(nèi)容

2 系統(tǒng)實現(xiàn)

2.1 系統(tǒng)界面

如圖5 所示,這是系統(tǒng)的可視化界面,用戶可以通過該界面,修改顯示文字、字體種類、文字坐標(biāo)、文字字體大小、旋轉(zhuǎn)點、旋轉(zhuǎn)角度、機器人半徑,還可設(shè)置是否顯示無效區(qū)域的內(nèi)容,最后確定后,通過點擊[生成代碼]按鈕,可以生成代碼。

圖5 矢量圖算法生成器界面

2.2 運行效果

通過圖6 的對比可以看出,骨架畫法顯然比不上矢量圖畫法,而且每次畫新的字符時,都需要重新編寫行走代碼,復(fù)用性極差;而矢量圖畫法畫出的結(jié)果更美觀,且復(fù)用性好。

圖6 骨架畫法和矢量圖畫法對比

如圖7,將字體的種類修改為“華為隸書”后,再修改旋轉(zhuǎn)參數(shù),使字符旋轉(zhuǎn)一定的角度后,個性的字符圖產(chǎn)生了。

圖7 顯示界面

由于RobotBASIC 中機器人觸碰到邊緣時會產(chǎn)生錯誤,所以機器人的半徑就是臨界值,使得界面中有一部分無法畫到,被稱為無效區(qū)域。無效區(qū)域內(nèi)的內(nèi)容在展示時是不會出現(xiàn)的,如圖8 所示。

RobotBASIC 界面是800×600 像素,機器人半徑r,則所需存儲的像素點數(shù)據(jù)量為:

S=(800-2*r)*(600-2*r)(0

可以解得:350000<=S<480000。

這是一個龐大的數(shù)據(jù)量,如圖9 所示,“Robot”字符所產(chǎn)生的代碼長度約為842KB。

圖8 無效區(qū)域的顯示

圖9 生成代碼字節(jié)長度

生成的算法代碼在RobotBASIC 中運行算法,開始運行時間是:21:41:47,結(jié)束運行時間是:22:03:23,總共花費時間是:22:03:23-21:41:47=0:21:36,花費時間超過21 分鐘,如圖10 所示。

圖10 原算法運行

前面對于數(shù)據(jù)的填充,是把除無效區(qū)域外的所有數(shù)據(jù)全部計入,但是這有一個問題,以圖11 為例,有效數(shù)據(jù)其實只有中間“Robot”這一部分的數(shù)據(jù),周圍的空白區(qū)域其實機器人根本不需要行走到,機器人走過是在浪費時間,但是也被填入到數(shù)據(jù)中。通過更新填充算法,先計算出有效數(shù)據(jù)像素點所占的矩形范圍,從而分別獲取橫、縱坐標(biāo)的最大值和最小值,如圖11 所示,縮小了填充數(shù)據(jù)的范圍,大大減少了機器人完成任務(wù)的時間。

3 矢量圖行走算法

矢量圖原理其實就是利用二維數(shù)組存儲像素點,通過0 不畫1 畫的方式來畫。而在RobotBASIC 中,只有一維數(shù)組,即二維數(shù)據(jù)存在一維數(shù)組中,機器人走到每行的末尾時,由于下個點是下一行的開始,所以機器人必須從尾部重新跑回去起始點。但是,這樣每次走回每行的起始點,這部分時間是浪費的,所以我們采用新的行走邏輯算法。利用一、二維數(shù)據(jù)的轉(zhuǎn)換關(guān)系,用兩個參數(shù)i 和j 分別表示當(dāng)前的點是第(i+1)行,第(j+1)列,這里+1 是因為數(shù)組下標(biāo)從0 開始計算。在一個列數(shù)為n 的矩陣中,一維數(shù)組表示形式就是c[i*n+j],這是等價于二維數(shù)組的c[i][j]的。然后在機器人走到一行的末尾時,行數(shù)+1,列數(shù)不變,讓機器人轉(zhuǎn)個180°,從一行的末尾往前走,這樣就可以節(jié)省掉機器人跑回行首的時間了,如圖12 所示,減少了幾乎一半的行走時間。

圖11 尋找有效矩形區(qū)域

圖12 新舊行走方式對比

從圖13 中可以很明顯看出差別,原算法代碼字節(jié)長度是842KB,新算法代碼字節(jié)長度是29KB,減少了約813KB,減少了96.556%的字節(jié)長度,新算法的字節(jié)長度僅是原算法字節(jié)長度的3.44%,大大縮小了數(shù)據(jù)填充量,提高了機器人的運行效率。

圖13 新舊算法字節(jié)長度對比

如圖14 所示,系統(tǒng)維護更新后新算法的運行時間僅是39s,而原算法運行時間是21 分鐘36 秒,合計1296 秒,新算法所用時間僅是原算法所用時間的3.01%,減少了約96.99%的時間消耗。

圖14 新算法運行

4 結(jié)語

本文主要是通過解決“矢量圖畫法的數(shù)據(jù)填充問題”,研究開發(fā)工具聯(lián)合使用的作用。從文中可以很明顯的看出,單單靠RobotBASIC 根本無法完成“矢量圖畫法”這種難度極大的任務(wù),然而在Visual Studio 參與聯(lián)合開發(fā)之后,問題變得輕松了許多。并且在一開始設(shè)計時,由于沒有考慮到“數(shù)據(jù)量大”和“行走方式的缺陷”,導(dǎo)致算法代碼字節(jié)長度過長和運行時間過長,不過通過不懈的努力和研究,系統(tǒng)還是得到了完善,成功解決了該文研究的問題。

系統(tǒng)目前處于一個比較穩(wěn)定的狀態(tài),但是同時也存在一個問題,那就是如果填充數(shù)據(jù)過于分散時,系統(tǒng)的數(shù)據(jù)填充量和機器人的運行時間依然會很長,這個問題暫時還沒有得到解決,在后續(xù)更新維護中會逐步解決。

猜你喜歡
界面系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
國企黨委前置研究的“四個界面”
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
空間界面
金秋(2017年4期)2017-06-07 08:22:16
電子顯微打開材料界面世界之門
主站蜘蛛池模板: 天天摸夜夜操| 中文字幕在线看视频一区二区三区| av在线手机播放| 香蕉国产精品视频| 成年免费在线观看| 国产精品主播| 久草热视频在线| av大片在线无码免费| 亚洲综合婷婷激情| 奇米精品一区二区三区在线观看| 亚洲女同一区二区| 日本精品视频| 国产精品毛片一区视频播| 亚洲有无码中文网| 亚洲品质国产精品无码| 精品一区国产精品| 国产成人精彩在线视频50| 99re66精品视频在线观看 | 久久99精品久久久大学生| 国产va免费精品观看| 欧美另类精品一区二区三区| 精品中文字幕一区在线| 波多野结衣第一页| 天天色综网| 国产综合欧美| 久久黄色影院| 亚洲国产AV无码综合原创| 中文字幕日韩久久综合影院| 制服丝袜一区| 国产97公开成人免费视频| 日本一区中文字幕最新在线| 久草国产在线观看| 日本黄色a视频| 国产91精品最新在线播放| 亚洲天堂日韩av电影| 亚洲精品无码久久久久苍井空| 少妇高潮惨叫久久久久久| 欧美精品影院| 在线无码av一区二区三区| AV不卡在线永久免费观看| 中文字幕首页系列人妻| 亚洲视频影院| 国产91熟女高潮一区二区| 亚洲男人天堂久久| 日本一区高清| 亚洲精品无码AV电影在线播放| 2020久久国产综合精品swag| 老司机午夜精品视频你懂的| 伊人激情综合网| 国产亚卅精品无码| 亚洲日韩精品综合在线一区二区| 99手机在线视频| 久久一日本道色综合久久| 日韩无码真实干出血视频| 情侣午夜国产在线一区无码| 99精品伊人久久久大香线蕉 | 国产精品成人AⅤ在线一二三四| 五月丁香在线视频| 日韩小视频在线播放| 亚洲Av综合日韩精品久久久| 国产成人精品亚洲日本对白优播| 欧美精品三级在线| 亚洲Av激情网五月天| 亚洲免费成人网| 亚洲成人精品久久| 欧美亚洲国产精品第一页| 亚洲成人精品久久| 国产精品久久久久久影院| 亚洲最黄视频| 国产一区二区视频在线| 亚洲中文字幕久久精品无码一区| 欧美一区二区精品久久久| 久草网视频在线| 99爱视频精品免视看| 人人妻人人澡人人爽欧美一区| 亚洲综合香蕉| 动漫精品啪啪一区二区三区| 又粗又硬又大又爽免费视频播放| 视频二区国产精品职场同事| 亚洲日韩每日更新| 91精品啪在线观看国产| 亚洲欧美色中文字幕|