C#繪圖設計文檔_第1頁
C#繪圖設計文檔_第2頁
C#繪圖設計文檔_第3頁
C#繪圖設計文檔_第4頁
C#繪圖設計文檔_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計 目 錄設計目的 - 2總體設計 - 2模塊設計 - 3核心代碼 - 7設計測試 - 11心得體會 - 15 參考文獻 - 16 一 設計目的1)掌握.NET基本結構以及C#語言的基本知識和技能;2)基本掌握面向對象程序開發(fā)的基本思路和方法;3)掌握GDI+開發(fā)基本知識;4)利用所學的基本知識和技能,進行簡單數(shù)據(jù)庫應用程序設計課程設計是我們的主要教學實踐環(huán)節(jié),通過課程設計我們圍繞基礎課或者專業(yè)課,運用學的知識,結合實際應用設計而進行的一次綜合分析設計能力的訓練. 課程設計的宗旨在與培養(yǎng)我們在本課程范圍內(nèi),初步掌握解決實際應用問題時所應具備的查閱資料,綜合運用所學知識的能力,為畢業(yè)設計及

2、今后從事專業(yè)工作打下基礎.通過本次課程設計,能夠鍛煉我們的動手能力,使我們能夠很好的鞏固上一個學期所學的知識內(nèi)容,掌握工程軟件設計的基本方法,強化了我們上機動手的能力,通過這次的課程設計,我們感覺到了以前學習的不足,以及在學習的過程中遇到的問題,能使我們對學過的知識加深理解,為后續(xù)學的計算機專業(yè)課,打下堅實的基礎.在課程設計過程中我們感覺到了,團體合作的重要性,我們組幾個人進行合作分工,提高了設計的效率,充分體現(xiàn)了團體精神,為以后出去在社會上工作時的合作精神奠定了基礎,能夠感覺到合作的重要性.還有在老師的指導下我們我們才能順利的進行設計,感覺到了老師的重要性,有了老師我們設計才有了方向目標.二

3、 總體設計簡單繪圖板程序此圖形圖像處理機具有如下功能:1能由鼠標控制繪制直線、矩形、橢圓,并能控制線條的顏色2能改變矩形和橢圓。3能打開和保存為圖形文件。4能打開圖片。5能通過參數(shù)對圖片進行縮放我們做的這個繪圖板是一個簡易的類似Windows畫圖工具的簡單繪圖板程序,我們設計了主要有菜單欄,狀態(tài)欄等基本元素,能夠實現(xiàn)簡單的集合畫圖,也能夠在鼠標控制下進行手動畫圖.通過測試程序能夠順利運行. 要求利用C#的編程思想以及組件開發(fā)原理來完成系統(tǒng)的設計; 突出C#語言與其它語言不同點(即體現(xiàn)C#的高級功能,如屬性概念、接口、事件、委托等)體現(xiàn)可視化編程基本東西,如系統(tǒng)帶有菜單、工具欄、狀態(tài)欄以及一些常

4、用的高級控件。主要流程圖如下:新建矩形直線畫筆時間簡易繪圖板文件查找關于打開保存退出工具欄狀態(tài)欄顏色橡皮橢圓選擇工具三 主要模塊菜單欄及狀態(tài)欄 菜單有 文件 ( 新建 打開 保存 退出) 查看 (工具欄 狀態(tài)欄) 關于一 新建其中新建就是創(chuàng)建子窗體代碼 Form1 pic = new Form1(); Pic.show();/創(chuàng)建一子窗體 然后調(diào)用Show()方法顯示該窗體二 打開 打開是執(zhí)行 muopen_Click事件處理程序.當點擊 文件打開 的時候就會打開到設定的目錄下,并顯示要打開的文件類型代碼分析OpenFileDialog openFile1= new OpenFileDialo

5、g();openFile1.InitialDirectory= c:;openFile1.Filter=Graphics File(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All Files(*.*)|*.*;openFile1.FilterIndex=1;openFile1.RestoreDirectory=true;if(openFile1.ShowDialog()=DialogResult.OK&openFile1.FileName.Length0)pictureBox1.Image =Image.FromFile(openFile1.FileName)

6、;首先創(chuàng)建打開文件對話框openfile1 InitialDirectory是文件初始目錄的符串 Filter為文件名篩選器字符串,用于決定打開時出來的類型, FilterIndex 就是打開時的索引值,打開時的類型. RestoreDirectory 表示在關閉對話框時是否還原到當前目錄. If判斷是否點擊了打開按pictureBox1.Image =Image.FromFile(openFile1.FileName)是加載選定的文件.三 保存 SaveFileDialog 類表示一個通用對話框,創(chuàng)建子類并調(diào)用ShowDialog方法來顯示對話框,允許指定用于保存文件選項. 通過對話框能夠將

7、pictureBox1控件中的文件存盤. 代碼分析SaveFileDialog saveFile1= new SaveFileDialog();saveFile1.Filter=GraphicsFile(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|AllFiles(*.*)|*.*;saveFile1.ShowDialog();saveFile1.FilterIndex=4; saveFile1.RestoreDirectory=true; saveFile1.InitialDirectory= c:; if (saveFile1.FileName!=)this.

8、pictureBox1.Image.Save(saveFile1.FileName,System.Drawing.Imaging.ImageFormat.Bmp);this.Text=saveFile1.FileName;elseMessageBox.Show(必須輸入文件名);同打開一樣首先創(chuàng)建一另存為對話框 當單擊保存的時候則ShowDialog方法的返回為DialogResult.OK 否則為 DialogResult.Cancel然后再判斷是否保存,調(diào)用pictureBox1控件的SavaFile方法,要指定要保存的文件,并且指定類型!四 退出 當單擊退出按鈕的時候就可以執(zhí)行下列代碼,

9、 this.menuItem5.Index = 3;this.menuItem5.Text = 退出;this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);五 工具欄核心代碼 using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Drawing.Drawing2D;using

10、System.IO;using System.Drawing.Imaging; using System.Text; namespace WindowsApplication7public class Form1 : System.Windows.Forms.Formprivate Point p1 = Point.Empty, p2 = Point.Empty;private Point p3=Point.Empty;private bool isMouseDown = false, isMouseUp = false;ArrayList addArray = new ArrayList()

11、;public static string shape;public static Color color=Color.Black;private System.Windows.Forms.Timer timer1;private System.Windows.Forms.StatusBarPanel statusBarPanel2;System.Drawing.Bitmap image = null;public struct SharpTypepublic string type;public Point p1, p2;public Color foreColor, backColor;p

12、ublic Brush brush; public SharpType(string type, Point p1, Point p2, Color foreColor, Color backColor, Brush brush )this.type = type;this.p1 = p1;this.p2 = p2;this.foreColor = foreColor;this.backColor = backColor;this.brush = brush;static void Main() Application.Run(new Form1();private void menuItem

13、2_Click(object sender, System.EventArgs e)Form1 pic = new Form1();pic.Show();private void menuItem9_Click(object sender, System.EventArgs e) MessageBox.Show(本程序由 商保根 穆釗 王西亞 張翼飛 王東偉制作!);Form1.shape=DrawEllipse;statusBar1.Panels0.Text=選擇橢圓;if(e.Button=toolBarButton4)Form1.shape=DrawRectangle;statusBar

14、1.Panels0.Text=選擇矩形;if(e.Button=toolBarButton5)Form1.shape=DrawLine;statusBar1.Panels0.Text=選擇直線;if(e.Button=toolBarButton6)Form1.shape=DrawCurve;statusBar1.Panels0.Text=選擇畫筆; private void menuItem8_Click(object sender, System.EventArgs e)if(menuItem8.Checked=false)menuItem8.Checked=true;statusBar1.

15、Visible=true;elsemenuItem8.Checked=false;statusBar1.Visible=false;四 繪圖板核心代碼private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)Graphics g = Graphics.FromImage(pictureBox1.Image); if( isMouseDown & p2 != Point.Empty )if(shape=DrawEllipse)g.DrawEllipse( Pens.White,

16、p1.X, p1.Y, Math.Abs( p1.X - p2.X ), Math.Abs( p1.Y - p2.Y ) );if(shape=DrawRectangle)g.DrawRectangle( Pens.White, p1.X, p1.Y, Math.Abs( p1.X - p2.X ), Math.Abs( p1.Y - p2.Y ) );if(shape=DrawLine) g.DrawLine(Pens.White,this.p1,this.p2);if( isMouseDown & ! isMouseUp )p2 = new Point( e.X, e.Y );if(sha

17、pe=DrawEllipse)g.DrawEllipse(new Pen(color,1), p1.X, p1.Y, Math.Abs( p1.X - p2.X ), Math.Abs( p1.Y - p2.Y ) );if(shape=DrawRectangle)g.DrawRectangle( new Pen(color,1), p1.X, p1.Y, Math.Abs( p1.X - p2.X ), Math.Abs( p1.Y - p2.Y ) );if(shape=DrawLine)g.DrawLine(new Pen(color,1),this.p1,this.p2);if(sha

18、pe=DrawCurve)g.DrawLine(new Pen(color,1),this.p1,this.p2);addArray.Add( new SharpType(DrawCurve, p1, p2, color, Color.Empty,Brushes.Black ) );this.p1=this.p2;this.p2=this.p3;if(shape=DrawEraser)g.DrawLine(new Pen(Color.White,1),this.p1,this.p2);addArray.Add( new SharpType(DrawCurve, p1, p2, Color.Wh

19、ite, Color.White, Brushes.Black ) );this.p1=this.p2;this.p2=this.p3;foreach( SharpType type in addArray )if(type.type=DrawEllipse)g.DrawEllipse( new Pen(type.foreColor,1), type.p1.X, type.p1.Y, Math.Abs( type.p1.X - type.p2.X ), Math.Abs( type.p1.Y - type.p2.Y ) );if(type.type=DrawRectangle)g.DrawRe

20、ctangle(new Pen(type.foreColor,1), type.p1.X, type.p1.Y, Math.Abs( type.p1.X - type.p2.X ), Math.Abs( type.p1.Y - type.p2.Y ) );if(type.type=DrawLine)g.DrawLine(new Pen(type.foreColor,1),type.p1,type.p2);if(type.type=DrawCurve)g.DrawLine(new Pen(type.foreColor,1),type.p1,type.p2);if(type.type=DrawEr

21、aser)g.DrawLine(new Pen(type.foreColor,100.0f),type.p1,type.p2);this.pictureBox1.Refresh(); g.Dispose();private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)if( ! isMouseUp )this.isMouseDown = true;this.p1 = new Point( e.X, e.Y );private void pictureBox1_MouseUp(ob

22、ject sender, System.Windows.Forms.MouseEventArgs e)this.isMouseDown = false;p2 = new Point( e.X, e.Y );Graphics g = Graphics.FromImage(pictureBox1.Image); if(shape=DrawEllipse)g.DrawEllipse( new Pen(color,1), p1.X, p1.Y, Math.Abs( p1.X - p2.X ), Math.Abs( p1.Y - p2.Y ) );addArray.Add( new SharpType(

23、 DrawEllipse, p1, p2, color, Color.Empty, Brushes.Black ) );if(shape=DrawRectangle)g.DrawRectangle(new Pen(color,1), p1.X, p1.Y, Math.Abs( p1.X - p2.X ), Math.Abs( p1.Y - p2.Y ) );addArray.Add( new SharpType(DrawRectangle, p1, p2, color, Color.Empty, Brushes.Black ) );if(shape=DrawLine)g.DrawLine(ne

24、w Pen(color,1),this.p1,this.p2);addArray.Add( new SharpType(DrawLine, p1, p2, color, Color.Empty, Brushes.Black ) );if(shape=DrawCurve)g.DrawLine(new Pen(color,1),this.p1,this.p2);addArray.Add( new SharpType(DrawCurve, p1, p2, color, Color.Empty, Brushes.Black ) ); if(shape=DrawEraser)g.DrawLine(new

25、 Pen(Color.White,1),this.p1,this.p2);addArray.Add( new SharpType(DrawCurve, p1, p2, Color.White, Color.White, Brushes.Black ) );p1 = Point.Empty;p2 = Point.Empty;this.pictureBox1.Refresh(); g.Dispose();private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)foreach( Sharp

26、Type type in addArray )if(type.type=DrawEllipse)e.Graphics.DrawEllipse(new Pen(type.foreColor,1), type.p1.X, type.p1.Y, Math.Abs( type.p1.X - type.p2.X ), Math.Abs( type.p1.Y - type.p2.Y ) );if(type.type=DrawRectangle)e.Graphics.DrawRectangle( new Pen(type.foreColor,1), type.p1.X, type.p1.Y, Math.Ab

27、s( type.p1.X - type.p2.X ), Math.Abs( type.p1.Y - type.p2.Y ) );if(type.type=DrawLine)e.Graphics.DrawLine(new Pen(type.foreColor,1),type.p1,type.p2);if(type.type=DrawCurve)e.Graphics.DrawLine(new Pen(type.foreColor,1),type.p1,type.p2);if(type.type=DrawEraser)e.Graphics.DrawLine(new Pen(type.foreColo

28、r,100.0f),type.p1,type.p2);private void timer1_Tick(object sender, System.EventArgs e)this.statusBarPanel2.Text=System.DateTime.Now.ToLongDateString()+ +System.DateTime.Now.ToLongTimeString();this.statusBar1.Refresh();private void Form1_Load(object sender, System.EventArgs e)this.pictureBox1.Controls.Clear(); image = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height); Graphics.FromImage(image).Clear(Color.White); this.pictureBox1.Image = (Bitmap)image.Clone(); 五測試效果圖六:心得體會 設計,給人以創(chuàng)作的沖動。在畫家眼里,設計是一幅清明上河圖或是一幅向日葵;在建筑師眼中,設計是昔日鎏金般的圓明園或是今日一塑自由女神像;在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論