绘图软件.docx
- 文档编号:5199903
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:11
- 大小:106.18KB
绘图软件.docx
《绘图软件.docx》由会员分享,可在线阅读,更多相关《绘图软件.docx(11页珍藏版)》请在冰豆网上搜索。
绘图软件
2流程图…………………………………………………1
3程序代码…………………………………………………2
4结果调试…………………………………………………7
1设计目的与要求
通过对windows绘图程序设计的学习及了解,设计一个绘图软件,实现颜色、图形、画笔等的多样变化,使其有更完善的画图功能。
在设计过程中,不单单要注意绘图功能的实现,还要实现画板窗体的设计,使其更美观方便。
2流程图
3程序代码
3.1绘图功能的设计与实现
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceDraw
{
publicpartialclassDrawForm:
Form
{
privateintdrawMode=2;
Graphicsg=null;
privatePointstart,end;
ColorpenColor=Color.Black;
intpenWidth=1;
Bitmapbit,map;
publicDrawForm()
{
InitializeComponent();
}
privatevoidPaint(Pointpoint)
{
Penpen=newPen(penColor,penWidth);
intx1=start.X;intx2=end.X;inty1=start.Y;inty2=end.Y;
switch(drawMode)
{
case2:
g=Graphics.FromImage(bit);
end=point;
g.DrawLine(pen,start,end);
pictureBox.Image=bit;
start=end;
break;
case3:
map=(Bitmap)bit.Clone();//画直线
g=Graphics.FromImage(map);
end=point;
g.DrawLine(pen,start,end);
pictureBox.Image=map;
break;
case4:
map=(Bitmap)bit.Clone();//矩形
g=Graphics.FromImage(map);
if(start.X {g.DrawRectangle(pen,start.X,start.Y,end.X-start.X,end.Y-start.Y);} if(start.X>end.X&&start.Y {g.DrawRectangle(pen,end.X,start.Y,start.X-end.X,end.Y-start.Y);} if(end.X {g.DrawRectangle(pen,end.X,end.Y,start.X-end.X,start.Y-end.Y);} if(end.X>start.X&&end.Y {g.DrawRectangle(pen,start.X,end.Y,end.X-start.X,start.Y-end.Y);} end=point; pictureBox.Image=map; break; case5: map=(Bitmap)bit.Clone(); g=Graphics.FromImage(bit); g.FillRectangle(newSolidBrush(Color.White),point.X,point.Y,10,10); pictureBox.Image=map; break; case6: map=(Bitmap)bit.Clone();//矩形 g=Graphics.FromImage(map); start.X=x1>x2? x2: x1;end.X=x1>x2? x1: x2; start.Y=y1>y2? y2: y1;end.Y=y1>y2? y1: y2; g.DrawEllipse(pen,start.X,start.Y,end.X-start.X,end.Y-start.Y); end=point; pictureBox.Image=map; break; } } privatevoidDrawForm_Load(objectsender,EventArgse) { bit=newBitmap(pictureBox.Width,pictureBox.Height); } privatevoidpictureBox_MouseDown(objectsender,MouseEventArgse) { if(e.Button==MouseButtons.Left) { start=newPoint(e.X,e.Y); end=start; } } privatevoidpictureBox_MouseUp(objectsender,MouseEventArgse) { if(e.Button==MouseButtons.Left) { if(map! =null)bit=map; } } privatevoid画线ToolStripMenuItem_Click(objectsender,EventArgse) { drawMode=2; } privatevoidtoolStripMenuItem1_Click_1(objectsender,EventArgse) { drawMode=3; } privatevoid画矩形_Click(objectsender,EventArgse) { drawMode=4; } privatevoid橡皮擦_Click(objectsender,EventArgse) { drawMode=5; } privatevoid画圆ToolStripMenuItem_Click(objectsender,EventArgse) { drawMode=6; } privatevoidtoolStripMenuItem2_Click(objectsender,EventArgse) { penWidth=1; } privatevoidtoolStripMenuItem3_Click(objectsender,EventArgse) { penWidth=4; } privatevoidtoolStripMenuItem4_Click(objectsender,EventArgse) { penWidth=8; } privatevoidtoolStripMenuItem5_Click(objectsender,EventArgse) { penWidth=12; } privatevoid打开ToolStripMenuItem_Click(objectsender,EventArgse) { open.ShowDialog(); } privatevoidopen_FileOk(objectsender,CancelEventArgse) { bit=newBitmap(open.OpenFile()); pictureBox.Image=bit; } privatevoidpictureBox_MouseMove(objectsender,MouseEventArgse) { stateLabel.Text="像素"+e.X.ToString()+","+e.Y.ToString(); if(e.Button==MouseButtons.Left) { Paint(newPoint(e.X,e.Y)); } } privatevoid颜色ToolStripMenuItem_Click(objectsender,EventArgse) { ColorDialogC=newColorDialog(); if(C.ShowDialog()==DialogResult.OK) { penColor=C.Color; } } privatevoid保存ToolStripMenuItem_Click(objectsender,EventArgse) { if(save.ShowDialog()==DialogResult.OK) { pictureBox.Image.Save(save.FileName); } } } } 3.2窗体设计实现 namespaceDraw { partialclassDrawForm { /// ///必需的设计器变量 /// privateSystem.ComponentModel.IContainercomponents=null; /// ///清理所有正在使用的资源 /// /// protectedoverridevoidDispose(booldisposing) { if(disposing&&(components! =null)) { components.Dispose(); } base.Dispose(disposing); } Windows窗体设计器生成的代码 privateSystem.Windows.Forms.StatusStripstatusStrip1; privateSystem.Windows.Forms.ToolStripStatusLabelstateLabel; privateSystem.Windows.Forms.MenuStripmenuStrip1; privateSystem.Windows.Forms.ToolStripMenuItem文? 件tToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem打䨰开aToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem保À¡ê存ä? ToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem画-笔À¨ºToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem颜? 色¦? ToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem字Á? 体¬? ToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItemtoolStripMenuItem2; privateSystem.Windows.Forms.ToolStripMenuItemtoolStripMenuItem3; privateSystem.Windows.Forms.ToolStripMenuItemtoolStripMenuItem4; privateSystem.Windows.Forms.ToolStripMenuItemtoolStripMenuItem5; privateSystem.Windows.Forms.OpenFileDialogopen; privateSystem.Windows.Forms.PictureBoxpictureBox; privateSystem.Windows.Forms.ToolStripMenuItem类¤¨¤型¨ªToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem画-线? ToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem画-直¡À线? ToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem画-矩? 形? ToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem画-圆2ToolStripMenuItem; privateSystem.Windows.Forms.ToolStripMenuItem橡e皮¡è擦¨¢ToolStripMenuItem; privateSystem.Windows.Forms.SaveFileDialogsave; } } 4调试结果 4.1颜色变化 4.2粗细变化 4.3橡皮擦 4.4图形变化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 绘图 软件
![提示](https://static.bdocx.com/images/bang_tan.gif)