1、绘图软件2 流程图 13 程序代码24 结果调试71设计目的与要求通过对windows绘图程序设计的学习及了解,设计一个绘图软件,实现颜色、图形、画笔等的多样变化,使其有更完善的画图功能。在设计过程中,不单单要注意绘图功能的实现,还要实现画板窗体的设计,使其更美观方便。2流程图3 程序代码3.1 绘图功能的设计与实现using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using Syst
2、em.Text;using System.Windows.Forms;namespace Draw public partial class DrawForm : Form private int drawMode=2; Graphics g = null; private Point start, end; Color penColor = Color.Black; int penWidth = 1; Bitmap bit,map; public DrawForm() InitializeComponent(); private void Paint(Point point) Pen pen
3、 = new Pen(penColor, penWidth); int x1 = start.X; int x2 = end.X; int y1 = start.Y; int y2 = end.Y; switch (drawMode) case 2: g = Graphics.FromImage(bit); end = point; g.DrawLine(pen,start,end); pictureBox.Image = bit; start = end; break; case 3: map = (Bitmap)bit.Clone();/画直线 g = Graphics.FromImage
4、(map); end = point; g.DrawLine(pen, start, end); pictureBox.Image = map; break; case 4: map = (Bitmap)bit.Clone();/矩形 g = Graphics.FromImage(map); if (start.X end.X & start.Y end.X & start.Y end.Y) g.DrawRectangle(pen, end.X, start.Y, start.X-end.X , end.Y-start.Y); if (end.X start.X & end.Ystart.X
5、& end.Y 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; private void DrawForm_Load(object sender, EventArgs e) bit = new Bitmap(pictureBox.Width,pictur
6、eBox.Height); private void pictureBox_MouseDown(object sender, MouseEventArgs e) if (e.Button = MouseButtons.Left) start = new Point(e.X, e.Y); end = start; private void pictureBox_MouseUp(object sender, MouseEventArgs e) if (e.Button = MouseButtons.Left) if (map != null) bit = map; private void 画线T
7、oolStripMenuItem_Click(object sender, EventArgs e) drawMode = 2; private void toolStripMenuItem1_Click_1(object sender, EventArgs e) drawMode = 3; private void 画矩形_Click(object sender, EventArgs e) drawMode = 4; private void 橡皮擦_Click(object sender, EventArgs e) drawMode = 5; private void 画圆ToolStri
8、pMenuItem_Click(object sender, EventArgs e) drawMode = 6; private void toolStripMenuItem2_Click(object sender, EventArgs e) penWidth = 1; private void toolStripMenuItem3_Click(object sender, EventArgs e) penWidth = 4; private void toolStripMenuItem4_Click(object sender, EventArgs e) penWidth = 8; pr
9、ivate void toolStripMenuItem5_Click(object sender, EventArgs e) penWidth = 12; private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) open.ShowDialog(); private void open_FileOk(object sender, CancelEventArgs e) bit = new Bitmap (open.OpenFile(); pictureBox.Image = bit; private void pict
10、ureBox_MouseMove(object sender, MouseEventArgs e) stateLabel.Text = 像素 + e.X.ToString() + , + e.Y.ToString(); if (e.Button = MouseButtons.Left) Paint(new Point(e.X, e.Y); private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e) ColorDialog C = new ColorDialog(); if (C.ShowDialog() = Dialog
11、Result.OK) penColor = C.Color; private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) if (save.ShowDialog() = DialogResult.OK) pictureBox.Image.Save(save.FileName); 3.2 窗体设计实现namespace Draw partial class DrawForm / / 必需的设计器变量 / private System.ComponentModel.IContainer components = null;
12、/ / 清理所有正在使用的资源 / / 如果应释放托管资源为 true;否则为 false。 protected override void Dispose(bool disposing) if (disposing & (components != null) components.Dispose(); base.Dispose(disposing); Windows 窗体设计器生成的代码 private System.Windows.Forms.StatusStrip statusStrip1; private System.Windows.Forms.ToolStripStatusLab
13、el stateLabel; private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem 文?件tToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 打开aToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 保存?ToolStripMenuItem; private System.Windows.For
14、ms.ToolStripMenuItem 画-笔ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 颜?色?ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 字?体?ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; private System.Windows.Forms.ToolStripMenuItem too
15、lStripMenuItem3; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5; private System.Windows.Forms.OpenFileDialog open; private System.Windows.Forms.PictureBox pictureBox; private System.Windows.Forms.ToolStripMenuItem
16、类型ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 画-线?ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 画-直线?ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 画-矩?形?ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 画-圆2ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 橡e皮擦ToolStripMenuItem; private System.Windows.Forms.SaveFileDialog save; 4 调试结果4.1 颜色变化4.2 粗细变化4.3 橡皮擦4.4 图形变化
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1