绘图软件.docx

上传人:b****4 文档编号:5199903 上传时间:2022-12-13 格式:DOCX 页数:11 大小:106.18KB
下载 相关 举报
绘图软件.docx_第1页
第1页 / 共11页
绘图软件.docx_第2页
第2页 / 共11页
绘图软件.docx_第3页
第3页 / 共11页
绘图软件.docx_第4页
第4页 / 共11页
绘图软件.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

绘图软件.docx

《绘图软件.docx》由会员分享,可在线阅读,更多相关《绘图软件.docx(11页珍藏版)》请在冰豆网上搜索。

绘图软件.docx

绘图软件

 

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;

///

///清理所有正在使用的资源

///

///如果应释放托管资源为true;否则为false。

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图形变化

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1