freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c多機(jī)聯(lián)合繪圖軟件的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文-文庫(kù)吧資料

2025-03-06 09:03本頁(yè)面
  

【正文】 nt p = new Point(, )。 public override void OnMouseDown(Palette palette, MouseEventArgs e) { (palette, e)。 private Point myFirstPoint。 class ToolLine : ToolObject { private int minDistance = 20。 ( 2) 在解決方案管理器中添加一個(gè)名為 ,使其從 ToolObjiect類(lèi)派生。 直線(xiàn)的繪制 ( 1) 運(yùn)行以及基本構(gòu)思還是和前面講的矩形,曲線(xiàn)是如出一轍的。 ( 4)在主窗體上雙擊曲線(xiàn)按鈕,在對(duì)應(yīng)的 Click 事件中添加如下代碼; ActiveTool = 。 } 在 的類(lèi)中,當(dāng)用戶(hù)按下鼠標(biāo)左鍵時(shí),即可觸發(fā) OnMouseDown 事件,在該事件中,捕獲鼠標(biāo)所在的點(diǎn),并以此點(diǎn)為曲線(xiàn)的終點(diǎn) myLastPoint,同時(shí)創(chuàng)建曲線(xiàn)對(duì)象 w。 myLastPoint = point。 if (distance minDistance) { if ( 1) { (point, )。 int dy = 。 DrawMyCurve w = (DrawMyCurve)[index]。 } Point point = new Point(, )。 isNewObjectAdded = true。 AddNewObject(palette, w)。 Point p = new Point(, )。 public override void OnMouseDown(Palette palette, MouseEventArgs e) { (palette, e)。主要代碼如下; class ToolCurve : ToolObject { private int minDistance = 20。 } ()。 if ( 3) { if ( 1) { (pen, pts[0], pts[1])。 AdjustableArrowCap myArrow = new AdjustableArrowCap(4, 4, true)。 Pen pen = new Pen(penColor, penWidth)。此處給出的 Draw 方法的實(shí)現(xiàn)代碼; 21 public override void Draw(Graphics g) { Point[] pts = new Point[]。 } } ( 7)運(yùn)行程序,單擊矩形按鈕,在 Panel 內(nèi) 繪制多個(gè)任意大小的矩形,運(yùn)行效果如圖 所示 圖 任意大小的矩形繪制 曲線(xiàn)的繪制 ( 1) 在解決方案資源管理器中,添加一個(gè)名為 DrawCurve 的類(lèi),使其從 DrawObjiect類(lèi)中派生,添加相應(yīng)的代碼。 } else { = 。 } else if ( == ) { ActiveTool = 。 (6)單擊主窗體上的 Panel 控件 ,分別找到其 MouseDown,MouseMove 和 MouseUp 事件及 Paint 事件,在對(duì)應(yīng)的事件中添加下面的代碼; private void Palette_MouseDown(object sender, MouseEventArgs e) { = false。 tools[(int)]=newToolRectangle()。 在主程序窗體 MultiDraw2 的構(gòu)造函數(shù)中,進(jìn)行初始化操作。 主要代碼如下; public enum ToolType { Pointer, Rectangle, Text, Curve, Image, Line }。 ()。 DrawMyRectangle w = (DrawMyRectangle)[index]。 } (palette, e)。 isNewObjectAdded = true。 DrawMyRectangle w = new DrawMyRectangle(, , 15, 15, , )。 18 } } 讓 ToolRectangle 類(lèi)從 ToolObject 繼承,并重寫(xiě)基類(lèi)的 OnMouseDown 和OnMouseMove 事件。 = true。 = true。 isNewObjectAdded = false。 } public virtual void OnMouseUp(Palette palette, MouseEventArgs e) { = false。 (point, 5)。 int index = ()。 } public virtual void OnMouseMove(Palette palette, MouseEventArgs e) { if (isNewObjectAdded == false) { return。 public virtual void OnMouseDown(Palette palette, MouseEventArgs e) { isNewObjectAdded = false。具體代碼請(qǐng)看附錄的源代碼; ( 3)分別添加名為 和 的類(lèi)文件,其中,ToolObject 表示封裝鼠標(biāo)事件的操作基類(lèi), ToolRectangle 實(shí)現(xiàn)繪制矩形是的鼠標(biāo)操作。 } } } 17 ( 2)在解決方案管理器中,添加一個(gè)名為 的類(lèi),提供系統(tǒng)公共的屬性和方法。 (pen, objRectangle)。 = id。主要代碼如下; class DrawMyRectangle : TrackRectangle { public DrawMyRectangle() { } public DrawMyRectangle(int x, int y, int width, int height, Color penColor, int id) { = new Rectangle(x, y, width, height)。 } set { id = value。 } } protected int id。 /// summary畫(huà)筆寬度 /summary public int PenWidth { get { return penWidth。 } set { penColor = value。 } } protected Color penColor。 /// summary是否選擇了該對(duì)象 /summary public bool Selected { get { return selected。 } else { (Login)。 = this。 ()。 = 。 ()。 } } } } 繪圖模塊設(shè)計(jì) 此模塊是整個(gè)系統(tǒng)的核心,實(shí) 現(xiàn)主要的功能:矩形,曲線(xiàn),直線(xiàn),文字,圖像的基本繪制,以及刪除,打印,導(dǎo)出圖像的基本功能。 ()。 return。 if ((, out ip) == false) { = 主機(jī) IP 地址格式不正確,請(qǐng)重新輸入! 。主機(jī)收到此命令后,清除附機(jī)對(duì)應(yīng)的信息,結(jié)束與此附機(jī)對(duì)應(yīng)的線(xiàn)程,同時(shí)把命 令發(fā)送給其他附機(jī)。主機(jī)接受后,返回 WeleLogin 命令,并把當(dāng)前的圖像圖像字節(jié)返回給附機(jī)。 13 第三章 系統(tǒng)詳細(xì)設(shè)計(jì) 初始模塊 初始界面主要顯示的就是一個(gè)初始化界面,它是整個(gè)系 統(tǒng)的第一個(gè)模塊,其相應(yīng)的窗體界面見(jiàn)圖 : 圖 多機(jī)聯(lián)合繪圖初始化界面 這是 PreMainForm 窗體, 在多機(jī)聯(lián)合繪圖系統(tǒng)中,主機(jī)和附機(jī)都是通過(guò)發(fā)送一系列的命令后,再通過(guò)響應(yīng)來(lái)實(shí)現(xiàn)操作的。 ( 6) MyServer 類(lèi)封裝主機(jī)的相關(guān)信息,提供主機(jī)向附機(jī)發(fā)送信息以及從附機(jī)接收信息的相關(guān)處理方法 ( 7) MyService 類(lèi)封裝公用的數(shù)據(jù)處理方法,提供繪制和平移對(duì)象的方法 主機(jī)與附機(jī) 在主機(jī)和附機(jī)的通信中,主機(jī)收到附機(jī)的發(fā)送的字符信息后,需要解析字符串的含義,并確定主機(jī)需要執(zhí)行的操作。 ( 4) User 類(lèi)封裝與服務(wù)器通信的客戶(hù)端信息。 ( 3) GraphicsList 類(lèi)保存繪制對(duì)象的列表,同時(shí)實(shí)現(xiàn)繪圖對(duì)象的查找,刪除,選擇等功能。 ( 1) ObjectID 類(lèi)提供為圖形圖像對(duì)象創(chuàng)建 ID 的方法。各類(lèi)之間的關(guān)系如圖 圖 其他類(lèi)設(shè)計(jì) 除了繪圖對(duì)象類(lèi)和工具類(lèi)以外,系統(tǒng)中還包括公共類(lèi)以及進(jìn)行主機(jī)和附機(jī)通信的類(lèi)。對(duì)于不同的對(duì)象,這些鼠標(biāo)事件中的實(shí)現(xiàn)代碼也不盡相同,為此需要提供一個(gè)實(shí)現(xiàn)圖形圖像鼠標(biāo)控 制基類(lèi) 12 通過(guò)鼠標(biāo)移動(dòng)圖像,繪制矩形,繪制文本,繪制曲線(xiàn),繪制直線(xiàn)的操作時(shí),將這些類(lèi)從 ToolObject 類(lèi)派生,然后在擴(kuò)充類(lèi)中重寫(xiě)基類(lèi)對(duì)應(yīng)的方法即可。 TrackText 是所有文字繪制的基類(lèi), DrawMyText 類(lèi)從 TrackText 實(shí)現(xiàn)文字的繪制,如果需要其他效果的文字,一樣可以從 TrackText 類(lèi)派生。曲線(xiàn)可以有帶有箭頭的曲線(xiàn),不帶 箭頭的曲線(xiàn),封閉曲線(xiàn)以及其他特殊曲線(xiàn)等。如果需要繪制橢圓,只需要從 TrackRectangle派生即可。 TrackRectangle 表示可以從規(guī)則矩形特征中抽取句柄的所有對(duì)象的基類(lèi),如矩形,橢圓,圖像等。 圖 繪制對(duì)象間的繼承關(guān)系 類(lèi) TrackRectangle,TrackText,TracCurve 都 是 從 DrawObject 繼 承 。 各繪圖對(duì)象類(lèi)之間的關(guān)系如
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1