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

正文內(nèi)容

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

2025-06-03 17:05 本頁面


【正文】 頭的曲線,封閉曲線以及其他特殊曲線等。DrawMyCurve從TrackCurve繼承表示繪制的是帶有箭頭的曲線。  TrackText是所有文字繪制的基類,DrawMyText類從TrackText實現(xiàn)文字的繪制,如果需要其他效果的文字,一樣可以從TrackText類派生。 工具類設(shè)計當用戶使用鼠標拖放繪制,選中和移動對象時,都會用到窗體或控件MouseMove,MouseDown,MouseUp事件。對于不同的對象,這些鼠標事件中的實現(xiàn)代碼也不盡相同,繪制矩形,繪制文本,繪制曲線,繪制直線的操作時,將這些類從ToolObject類派生,然后在擴充類中重寫基類對應(yīng)的方法即可。類ToolRectangle,ToolCurve,ToolText,ToolImage,ToolPointer分別表示繪制矩形,曲線,文字,圖像和平移圖形圖像時對應(yīng)的鼠標控制操作類,他們均從ToolObject派生。              除了繪圖對象類和工具類以外,系統(tǒng)中還包括公共類以及進行主機和附機通信的類。具體如下。(1) ObjectID類提供為圖形圖像對象創(chuàng)建ID的方法。(2) CC類提供系統(tǒng)公用的屬性和方法定義。(3) GraphicsList類保存繪制對象的列表,同時實現(xiàn)繪圖對象的查找,刪除,選擇等功能。繪制對象列表由List類型的字段來進行維護。(4) User類封裝與服務(wù)器通信的客戶端信息。 (5) MyClient類封裝附機的相關(guān)信息,提供附機向主機發(fā)送信息以及從主機接收信息的相關(guān)處理方法。(6) MyServer類封裝主機的相關(guān)信息,提供主機向附機發(fā)送信息以及從附機接收信息的相關(guān)處理方法(7) MyService類封裝公用的數(shù)據(jù)處理方法,提供繪制和平移對象的方法在主機和附機的通信中,主機收到附機的發(fā)送的字符信息后,需要解析字符串的含義,并確定主機需要執(zhí)行的操作。對于附機來說也是一樣的道理,字符串分為命令部分和參數(shù)部分,命令部分和參數(shù)部分之間以及參數(shù)部分的各個參數(shù)之間均用逗號分隔。第三章 系統(tǒng)詳細設(shè)計  初始界面主要顯示的就是一個初始化界面,它是整個系統(tǒng)的第一個模塊,: 多機聯(lián)合繪圖初始化界面           這是PreMainForm窗體,在多機聯(lián)合繪圖系統(tǒng)中,主機和附機都是通過發(fā)送一系列的命令后,再通過響應(yīng)來實現(xiàn)操作的。a. 附機發(fā)送給主機的命令:(1)通過發(fā)送Login命令,附機與主機建立連接后,進入操作界面。主機接受后,返回WeleLogin命令,并把當前的圖像圖像字節(jié)返回給附機。(2)通過發(fā)送Logout命令,附機退出制作。主機收到此命令后,清除附機對應(yīng)的信息,結(jié)束與此附機對應(yīng)的線程,同時把命令發(fā)送給其他附機。(3)通過GetID命令來獲取圖形圖像的唯一的ID.b. 主機發(fā)給附機的命令:(1)通過ID命令,主機返回給圖像圖形的ID(2)通過Logout命令,主機退出制作 c. 主機IP的確立核心代碼如下: IPAddress ip。 if ((, out ip) == false) { = 主機IP地址格式不正確,請重新輸入!。 = true。 return。 } else { = 正在連接主機,請稍等……。 ()。 while () { if ( == false) { ()。 } } } } 繪圖模塊設(shè)計此模塊是整個系統(tǒng)的核心,實現(xiàn)主要的功能:矩形,曲線,直線,文字,圖像的基本繪制,以及刪除,打印,導出圖像的基本功能。 其主要通過菜單來實現(xiàn)下跳到其他窗體,通過菜單實現(xiàn)鏈接不同窗體 其核心代碼如下; public partial class MainForm : Form { public MainForm() { InitializeComponent()。 ()。 = new Palette()。 = 。 ()。 ()。 SetUserState()。 = this。 if ( == || == ) { ()。 } else { (Login)。 } }.1矩形的繪制(1)在解決方案管理器中,表示所有圖形圖像的基類,代碼定義如下;public abstract class DrawObject { private bool selected。 /// summary是否選擇了該對象/summary public bool Selected { get { return selected。 } set { selected = value。 } } protected Color penColor。 /// summary畫筆顏色/summary public Color PenColor { get { return penColor。 } set { penColor = value。 } } protected int penWidth = 2。 /// summary畫筆寬度/summary public int PenWidth { get { return penWidth。 } set { penWidth = value。 } } protected int id。 public int ID { get { return id。 } set { id = value。 } }然后再添加一個名為DrawMyRectangle的類文件,表示要繪制的矩形對象,讓該類從DrawObject繼承,并重寫DrawObject類的Draw方法。主要代碼如下;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)。 = penColor。 = id。 } public override void Draw(Graphics g) { Pen pen = new Pen(penColor)。 (pen, objRectangle)。 ()。 } }}(2)在解決方案管理器中,提供系統(tǒng)公共的屬性和方法。CC類中提供了為圖形圖像對象分配ID的方法。具體代碼請看附錄的源代碼;(3),其中,ToolObject表示封裝鼠標事件的操作基類,ToolRectangle實現(xiàn)繪制矩形是的鼠標操作。ToolObject類的主要代碼如下;class ToolObject { protected bool isNewObjectAdded = false。 public virtual void OnMouseDown(Palette palette, MouseEventArgs e) { isNewObjectAdded = false。 ()。 } public virtual void OnMouseMove(Palette palette, MouseEventArgs e) { if (isNewObjectAdded == false) { return。 } Point point = new Point(, )。 int index = ()。 if ( == ) { DrawObject w = [index]。 (point, 5)。 } ()。 } public virtual void OnMouseUp(Palette palette, MouseEventArgs e) { = false。 ()。 isNewObjectAdded = false。 } /// summary /// 添加新的圖形對象 /// /summary protected void AddNewObject(Palette palette, DrawObject w) { ()。 = true。 (w)。 = true。 ()。 }}讓ToolRectangle類從ToolObject繼承,并重寫基類的OnMouseDown和OnMouseMove事件。主要代碼如下;class ToolRectangle : ToolObject { public ToolRectangle() { } public override void OnMouseDown(Palette palette, MouseEventArgs e) { (palette, e)。 DrawMyRectangle w = new DrawMyRectangle(, , 15, 15, , )。 AddNewObject(palette, w)。 isNewObjectAdded = true。 } public override void OnMouseUp(Palette palette, MouseEventArgs e) { if (isNewObjectAdded == false) { return。 } (palette, e)。 if ( != ) { int index = ()。 DrawMyRectangle w = (DrawMyRectangle)[index]。 //左上角x坐標,左上角y坐標,寬,高,顏色,id ((DrawMyRectangle,{0},{1},{2},{3},{4},{5}, , , , , (), ))。 (
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1