亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種模擬圓規(guī)實(shí)現(xiàn)繪制圓的方法

文檔序號(hào):9922499閱讀:1761來(lái)源:國(guó)知局
一種模擬圓規(guī)實(shí)現(xiàn)繪制圓的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種繪制圓的方法,尤其涉及一種模擬圓規(guī)實(shí)現(xiàn)繪制圓的方法。
【背景技術(shù)】
[0002]常規(guī)的教學(xué)方法是黑板和粉筆,當(dāng)今是信息化時(shí)代,電腦及手機(jī)移動(dòng)設(shè)備給人們的生活、學(xué)習(xí)方面帶了很多便捷;因此,也產(chǎn)生了很多教學(xué)軟件、網(wǎng)絡(luò)授課,那么就急需一些授課工具作為基石。傳統(tǒng)繪制圓的方式通常都是通過(guò)圓規(guī)進(jìn)行繪制的,在教學(xué)過(guò)程中使用起來(lái)不太方便,故而,需提供一種模擬圓規(guī)繪制圓的工具,方便老師進(jìn)行網(wǎng)絡(luò)教學(xué)。

【發(fā)明內(nèi)容】

[0003]本發(fā)明要解決的技術(shù)問題,在于提供一種模擬圓規(guī)實(shí)現(xiàn)繪制圓的方法,可以基于編程實(shí)現(xiàn)虛擬圓規(guī)繪制圓,達(dá)到直觀形象、易學(xué)易用的教學(xué)目的。
[0004]本發(fā)明是這樣實(shí)現(xiàn)的:
[0005]—種模擬圓規(guī)實(shí)現(xiàn)繪制圓的方法,包括如下步驟:
[0006]步驟10、創(chuàng)建繪圖工程,定義一窗口作為畫布窗口,在該畫布窗口上添加畫布控件,并確定所述畫布控件上的操作接口 ;
[0007]步驟20、確定圓規(guī)所要實(shí)現(xiàn)的功能操作,所述功能操作包括對(duì)圓規(guī)整體進(jìn)行移動(dòng)、對(duì)圓規(guī)的半徑大小進(jìn)行拉伸、對(duì)圓規(guī)進(jìn)行旋轉(zhuǎn)及對(duì)圓進(jìn)行繪制;
[0008]步驟30、確定圓規(guī)數(shù)學(xué)幾何圖形模型的結(jié)構(gòu),通過(guò)所述操作接口獲取一矩形的位置信息,根據(jù)該矩形的位置信息及所述圓規(guī)數(shù)學(xué)幾何圖形模型的結(jié)構(gòu)計(jì)算出所述圓規(guī)數(shù)學(xué)幾何圖形模型中各個(gè)頂點(diǎn)的坐標(biāo)信息;
[0009]步驟40、確定所述圓規(guī)數(shù)學(xué)幾何圖形模型的控制區(qū)域,所述控制區(qū)域包括移動(dòng)控制區(qū)域、拉伸控制區(qū)域、旋轉(zhuǎn)控制區(qū)域及繪制控制區(qū)域;
[0010]步驟50、根據(jù)各個(gè)頂點(diǎn)的坐標(biāo)信息填充及繪制出所述圓規(guī)數(shù)學(xué)幾何圖形模型,并構(gòu)建出所述控制區(qū)域,判斷操作點(diǎn)是否位于所述控制區(qū)域內(nèi),即判斷操作點(diǎn)是否滿足相應(yīng)的控制條件,若滿足,則在不同的控制區(qū)域內(nèi)進(jìn)行相應(yīng)的功能操作;若不滿足,則不進(jìn)行任何操作;
[0011]步驟60、根據(jù)所述圓規(guī)數(shù)學(xué)幾何圖形模型提供的圓心及半徑大小,并結(jié)合繪圖工具完成圓的繪制。
[0012]進(jìn)一步地,所述步驟50中在不同的控制區(qū)域內(nèi)進(jìn)行相應(yīng)的功能操作,具體如下:
[0013]如果操作點(diǎn)滿足移動(dòng)操作控制條件,則通過(guò)移動(dòng)所述矩形的位置對(duì)圓規(guī)整體進(jìn)行移動(dòng);如果操作點(diǎn)滿足拉伸操作控制條件,則通過(guò)拉伸所述矩形的位置對(duì)圓規(guī)的半徑大小進(jìn)行拉伸;如果操作點(diǎn)滿足旋轉(zhuǎn)操作控制條件,則通過(guò)旋轉(zhuǎn)所述矩形的位置對(duì)圓規(guī)進(jìn)行旋轉(zhuǎn);如果操作點(diǎn)滿足繪制操作控制條件,則對(duì)圓進(jìn)行繪制。
[0014]進(jìn)一步地,所述操作接口為鼠標(biāo)操作接口或觸控操作接口。
[0015]本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明可以基于編程工具實(shí)現(xiàn)虛擬圓規(guī)繪制圓,達(dá)到直觀形象、易學(xué)易用的教學(xué)目的。
【附圖說(shuō)明】
[0016]下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
[0017]圖1為本發(fā)明一種模擬圓規(guī)實(shí)現(xiàn)繪制圓的方法執(zhí)行流程圖。
[0018]圖2為圓規(guī)數(shù)學(xué)幾何模型圖。
[0019]圖3為本發(fā)明最終構(gòu)建出來(lái)的圓規(guī)圖。
[0020]圖4為本發(fā)明的圓規(guī)繪制圓過(guò)程示意圖。
[0021]圖5為本發(fā)明的第一種拉伸操作效果示意圖。
[0022]圖6為本發(fā)明的第二種拉伸方式控制區(qū)域及旋轉(zhuǎn)控制區(qū)域示意圖。
[0023]圖7為本發(fā)明的第二種拉伸操作效果示意圖。
[0024]圖8為本發(fā)明的整體移動(dòng)效果示意圖。
[0025]圖9為本發(fā)明的旋轉(zhuǎn)效果示意圖。
【具體實(shí)施方式】
[0026]為使得本發(fā)明更明顯易懂,現(xiàn)以一優(yōu)選實(shí)施例,并配合附圖作詳細(xì)說(shuō)明如下。
[0027]本發(fā)明是基于編程實(shí)現(xiàn),只要是面向?qū)ο笕魏尉幊陶Z(yǔ)言都可以作為本發(fā)明的實(shí)現(xiàn)工具。本實(shí)施例中采用Delphi作為編程工具,并結(jié)合GDI+繪圖庫(kù)進(jìn)行實(shí)現(xiàn),當(dāng)然如果采取其他的開發(fā)語(yǔ)言或者工具也可以實(shí)現(xiàn)本發(fā)明的內(nèi)容,只是開發(fā)語(yǔ)言和工具不同而已,而思路方法還是一樣的。
[0028]如圖1所示,本發(fā)明的一種模擬圓規(guī)實(shí)現(xiàn)繪制圓的方法,包括如下步驟:
[0029]步驟10、創(chuàng)建繪圖工程,定義一窗口作為畫布窗口,在該畫布窗口上添加畫布控件,并確定所述畫布控件上的操作接口(畫布控件上一般會(huì)有很多響應(yīng)事件的回調(diào)函數(shù),比如說(shuō):鼠標(biāo)、鍵盤、多點(diǎn)觸控、手勢(shì)等,我們稱為這些回調(diào)函數(shù)為操作接口;如果我們要實(shí)現(xiàn)某個(gè)響應(yīng)事件,比如說(shuō)鼠標(biāo),只要把鼠標(biāo)相應(yīng)回調(diào)函數(shù)的實(shí)現(xiàn)部分進(jìn)行完善其功能代碼即可,實(shí)現(xiàn)過(guò)程中用到的鼠標(biāo)位置等參數(shù)信息,都是由響應(yīng)事件的回調(diào)函數(shù)直接得到;這邊的操作接口為鼠標(biāo)或觸控這兩個(gè)事件的響應(yīng)函數(shù)操作接口);具體說(shuō)明如下:
[0030](I)建立繪圖工程,定義一窗口作為畫布窗口,在該畫布窗口上放置畫布控件:TPaintbox,其中,畫布控件也可以不用TPaintbox,只要有繪圖設(shè)備句柄,能支持⑶I及⑶I+繪圖機(jī)制的任何控件都可以;
[0031 ] (2)定義在畫布窗口上操作的基本操作接口,所述操作接口為鼠標(biāo)操作接口或觸控操作接口;
[0032]鼠標(biāo)操作:按下(mousedown)、移動(dòng)(mousemove)、彈開(mouseup),如下:
[0033]procedure MouseDown(Sender:TObject;
[0034]Button:TMouseButton;Shift:TShiftState;X,Y:1nteger);
[0035]procedure MouseMove(Sender:TObject;
[0036]Shift:TShiftState;X,Y:1nteger);
[0037]procedure MouseUp(Sender:TObject;
[0038]Button:TMouseButton;Shift:TShiftState;X,Y:1nteger);
[0039]觸控操作:按下(touchdown)、移動(dòng)(touchmove)、彈開(touchup),這邊按下、移動(dòng)、彈開的入口函數(shù)都一樣,如下:
[0040]procedure WMT0UCH(var Msg:TMessage);message WM—TOUCH;
[0041]具體是什么動(dòng)作,由系統(tǒng)傳過(guò)來(lái)的消息體TMessage及系統(tǒng)相關(guān)API可以獲取,本發(fā)明要說(shuō)明的是從這些基本入口函數(shù)(無(wú)論是鼠標(biāo)還是觸控)要獲取畫布設(shè)備傳過(guò)來(lái)的原始坐標(biāo)信息;
[0042]步驟20、確定圓規(guī)所要實(shí)現(xiàn)的功能操作,所述功能操作包括對(duì)圓規(guī)整體進(jìn)行移動(dòng)、對(duì)圓規(guī)的半徑大小進(jìn)行拉伸、對(duì)圓規(guī)進(jìn)行旋轉(zhuǎn)及對(duì)圓進(jìn)行繪制;
[0043]步驟30、確定圓規(guī)數(shù)學(xué)幾何圖形模型的結(jié)構(gòu),通過(guò)所述操作接口獲取一矩形的位置信息,根據(jù)該矩形的位置信息及所述圓規(guī)數(shù)學(xué)幾何圖形模型的結(jié)構(gòu)計(jì)算出所述圓規(guī)數(shù)學(xué)幾何圖形模型中各個(gè)頂點(diǎn)的坐標(biāo)信息,圓規(guī)數(shù)學(xué)幾何模型見圖2;而圖3為本發(fā)明最終構(gòu)建出來(lái)的圓規(guī)圖;本步驟中如果沒有特別說(shuō)明,那么涉及到的長(zhǎng)度衡量單位都為設(shè)備的基本單位,比如為顯示器設(shè)備,那么其基本單位為像素;本步驟具體如下:
[0044]步驟301、定義圓規(guī)數(shù)學(xué)幾何圖形模型的輸入?yún)?shù)為矩形的四個(gè)點(diǎn)A、B、C、D,按圖2所示構(gòu)成的矩形,矩形的GDI+定義為:
[0045]RectOut:TGPRectF;
[0046]那么有:
[0047 ] AD = Re ctOut.Width;
[0048]AB = RectOut.Height ;
[0049]PointA.X = RectOut.X;
[0050]PointA.Y = RectOut.Y ;
[0051]PointB.X = RectOut.X;
[0052]PointB.Y = RectOut.Y+Rect0ut.Height ;
[0053]PointC.X = RectOut.X+Rect0ut.Width ;
[0054]PointC.Y = RectOut.Y+Rect0ut.Height ;
[0055]PointD.X = RectOut.X+Rect0ut.Width ;
[0056]PointD.Y = RectOut.Y ;
[0057]步驟302、定義圓弧FEG(E為AD的中點(diǎn)),弦長(zhǎng)FG = 30,對(duì)應(yīng)的圓心角為120度,那么就可以推算出對(duì)應(yīng)的半徑為:10*sqrt(3),sqrt(3)為3的開根號(hào)。即:
[0058]PointE.X = RectOut.X+Rect0ut.Width/2 ;
[0059]PointE.Y = RectOut.Y ;
[0060]圓心(PointCenterFEG)的坐標(biāo)為:
[0061 ] PointCenterFEG.X = PointE.X ;
[0062]PointCenterFEG.Y = PointE.Y+1 O^sqrt(3);
[0063]算出圓弧的外接矩形(RoundRect):
[0064]RoundRect.X = PointCenterFEG.X-10*sqrt(3);
[0065]RoundRect.Y = PointCenterFEG.Y-1O^sqrt(3);
[0066]RoundRect.Width = 2* 10*10*sqrt(3);
[0067]RoundRect.Height = 2* 10*10*sqrt(3);
[0068]步驟303、圓弧旁邊的兩條線:FFl、GG1兩條線的端點(diǎn)坐標(biāo):
[0069](I)算出輔助點(diǎn)E3,即HK的中點(diǎn):
[0070]Po intE3.X=PointE.X;
[0071]規(guī)定:
[0072]PointE3.Y = PointE.Y+40 ;
[0073](2)算出點(diǎn)F坐標(biāo):
[0074]由于FG = 30,因此:
[0075]Po intF.X = PointE.X-15;
[0076]容易算出圓心到弦的距離為:5*sqrt(3),因此:
[0077]PointF.Y = PointCenterFEG.Y-5*Sqrt(3);
[0078](3)算出點(diǎn)Fl坐標(biāo):
[0079]規(guī)定:
[0080]PointFl.X = PointE3.Χ_10;
[0081]PointFl.Y = PointE3.Y;
[0082](4)算出點(diǎn)G坐標(biāo):
[0083]規(guī)定:
[0084]PointG.X = PointE.X+15;
[0085]PointG.Y = PointCenterFEG.Y-5*Sqrt(3);
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1