实验五 图形设计

每复制一个方法都要绑定Paint事件

一、创建Windows窗体应用程序,要求如下:(源代码+运行界面,缺少任一项为0分,源代码只需粘贴绘制图形代码所在的方法,不用粘贴太多)

例如:
在这里插入图片描述

(1)添加一个窗体Form1,绘制两个矩形,一个为蓝色边框,另一个为红色边框,如下图所示。

在这里插入图片描述

using System;
using System.Windows.Forms;
using System.Drawing;
private void Form1_Paint(object sender,PaintEventArgs e){/*Graphics obj = this.CreateGraphics();int x, y, w, h;x = 10; y = 10; w = 150; h = 150;obj.DrawLine(Pens.Blue, x, y, x+w, y);obj.DrawLine(Pens.Blue, x, y, x, y+h);obj.DrawLine(Pens.Blue, x + w, y, x + w, y + h);obj.DrawLine(Pens.Blue, x, y + h, x + w, y + h);Graphics obj1 = this.CreateGraphics();int x1, y1, w1, h1;x1 = 50; y1 = 50; w1 = 150; h1 = 150;obj.DrawLine(Pens.Red, x1, y1, x1 + w1, y1);obj.DrawLine(Pens.Red, x1, y1, x1, y1 + h1);obj.DrawLine(Pens.Red, x1 + w1, y1, x1 + w1, y1 + h1);obj.DrawLine(Pens.Red, x1, y1 + h1, x1 + w1, y1 + h1);*/Graphics gobj = this.CreateGraphics();Pen bluePen = new Pen(Color.Blue, 5);Pen redPen = new Pen(Color.Red, 5);Rectangle myRectangle = new Rectangle(50, 50, 100, 80);gobj.DrawRectangle(bluePen, 30, 20, 100, 80);gobj.DrawRectangle(redPen, myRectangle);}
(2)添加一个窗体Form2,绘制两个填充饼形构成一个椭圆,如下图所示。

在这里插入图片描述

using System;
using System.Drawing;
using System.Windows.Forms;
private void Form2_Paint(object sender,PaintEventArgs s) {/*Graphics obj = this.CreateGraphics();Rectangle rec1 = new Rectangle(20, 20, 150, 90);obj.FillPie(Brushes.Red, rec1, 300, 60);//1点方向顺时针60°Rectangle rec2 = new Rectangle(20, 20, 150, 90);obj.FillPie(Brushes.Blue,rec2,0,300);//3点方向顺时针300°*/Graphics gobj = this.CreateGraphics();gobj.FillPie(Brushes.Blue, 30, 30, 130, 80, 0, 300);gobj.FillPie(Brushes.Red, 30, 30, 130, 80, 0, -60);}
(3)添加一个窗体Form3,绘制一个带边的填充椭圆,如下图所示。

在这里插入图片描述

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
private void Form3_Paint(object sender, PaintEventArgs e)
{Graphics gobj = this.CreateGraphics();HatchBrush myBrush = new HatchBrush(HatchStyle.BackwardDiagonal, Color.Blue, Color.Green);Pen myPen = new Pen(Color.Red, 8);gobj.DrawEllipse(myPen, 20, 20, 150, 100);gobj.FillEllipse(myBrush, 20, 20, 150, 100);
}
(4)添加一个窗体Form4,用不同的大小字体绘制3个文本,如下图所示。

在这里插入图片描述

using System;
using System.Drawing;
using System.Windows.Forms;
private void Form4_Paint(object sender, PaintEventArgs s)//加引用using System.Drawing.Drawing2D;{/*Graphics obj = this.CreateGraphics();StringFormat sf1 = new StringFormat();//StringFormat sf2 = new StringFormat();Font f1 = new Font("隶书",20,FontStyle.Bold);Font f2 = new Font("隶书", 5, FontStyle.Bold);HatchBrush obj1 = new HatchBrush(HatchStyle.Vertical,Color.Blue,Color.Green);SolidBrush obj2 = new SolidBrush(Color.Red);sf1.Alignment = StringAlignment.Far;//sf2.FormatFlags = StringFormatFlags.DirectionVertical;//竖直obj.DrawString("中华人民共和国",f1,obj1,220,15,sf1);obj.DrawString("中华人民共和国", f2, obj1, 300, 100, sf1);//obj.DrawString("中华人民共和国", f, obj2, 100, 5, sf1);*/int i;StringFormat strFormat;Font strFont;SolidBrush strBrush;Graphics gobj = this.CreateGraphics();for (i = 10; i <= 24; i += 6){strFormat = new StringFormat();strFont = new System.Drawing.Font("隶书", i);strBrush = new SolidBrush(Color.Red);gobj.DrawString("中华人民共和国", strFont, strBrush, 2 * i, 3 * i, strFormat);}}

二、创建Windows窗体应用程序,添加一个窗体Form1,添加3个命令按钮,单击时分别在窗体上画一条直线、一个形状和一个文本,如下图所示。(源代码+运行界面,缺少一项为0分,源代码只需粘贴绘制图形代码所在的方法,不用粘贴太多)

在这里插入图片描述

private void button1_Click(object sender, EventArgs e)
{Pen myPen = new Pen(System.Drawing.Color.Blue);Graphics gobj = this.CreateGraphics();gobj.DrawLine(myPen, 30, 30, 120, 120);
}private void button2_Click(object sender, EventArgs e)
{Pen myPen = new Pen(System.Drawing.Color.Blue);Graphics gobj = this.CreateGraphics();gobj.DrawEllipse(myPen, new Rectangle(30, 30, 100, 100));
}private void button3_Click(object sender, EventArgs e)
{Graphics gobj = this.CreateGraphics();string drawString = "使用DrawString方法";Font myFont = new Font("黑体", 16);Brush b = new SolidBrush(System.Drawing.Color.Blue);float x = 30.0F;float y = 30.0F;StringFormat myFormat = new StringFormat();gobj.DrawString(drawString, myFont, b, x, y, myFormat);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADO.NET与SQL Server数据库的交互

7.3.1 使用SqlConnection对象连接数据库 例如&#xff1a;建立与SQL Server数据库的连接。 string connstring"Data Sourceservername;uidusername;pwdpassword;Initial Catalogdbname";SqlConnection connnew SqlConnection(connstring);conn.Open(); 例如&#xf…

linux ftp日志_linux学习笔记(一)——Linux分区和目录结构

linux学习笔记&#xff08;一&#xff09;——Linux分区和目录结构安装Linux时&#xff0c;手动挂载分区的情况下&#xff0c;/ 和 swap 是必须要挂载的&#xff0c;其他/home、/boot 等可以根据需要自行挂载。一般来说&#xff0c;简单的话&#xff0c;建议挂载三个分区&#…

vc++ 6.0 堆栈_在C ++中使用链接列表实现堆栈

vc 6.0 堆栈To implement a stack using a linked list, basically we need to implement the push() and pop() operations of a stack using linked list. 要使用链接列表实现堆栈 &#xff0c;基本上&#xff0c;我们需要使用链接列表实现堆栈的push()和pop()操作。 Exampl…

协议地址结构_TCP/IP 协议 讲解

计算机网络体系结构分层太厉害了&#xff0c;终于有人能把TCP/IP 协议讲的明明白白了计算机网络体系结构分层不难看出&#xff0c;TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”&#xff0c;而 TCP/IP 则更强调“在计算机上实现协议应该开…

28335接两个spi设备_IIC和SPI如此流行,谁才是嵌入式工程师的必备工具?

IICvs SPI现今&#xff0c;在低端数字通信应用领域&#xff0c;我们随处可见 IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和 Motorola(for SPI) 出于不同背景和市场需求…

线性表15|魔术师发牌问题和拉丁方阵 - 数据结构和算法20

线性表15 : 魔术师发牌问题和拉丁方阵 让编程改变世界 Change the world by program 题外话 今天小甲鱼看到到微博有朋友在问&#xff0c;这个《数据结构和算法》系列课程有木有JAVA版本的&#xff1f; 因为这个问题之前也有一些朋友问过&#xff0c;所以咱在这里统一说下哈…

[ZT]Three ways to tell if a .NET Assembly is Strongly Named (or has Strong Name)

Here are several convenient ways to tell whether a .NET assembly is strongly named. (English language note: I assume the form “strongly named” is preferred over “strong named” since that’s the form used in the output of the sn.exe tool shown immediat…

rstudio 修改代码间距_第一章 R和RStudio

R与RStudioR是一种统计学编程语言&#xff0c;在科学计算领域非常流行。它是由Ross Ihaka和Robert Gentleman开发的&#xff0c;是 "S "编程语言的开源实现。R也是使用这种语言进行统计计算的软件的名字。它有一个庞大的在线支持社区和专门的软件包&#xff0c;可以为…

ubuntu下最稳定的QQ

一、安装好 Wine 1.2&#xff08;1.2 版安装好就支持中文界面的了&#xff09; 当然得有WINE 了 当然我的有 如果没有可以如下方法得到&#xff1a; 第一种方法&#xff1a;如果你已经安装过 Wine 的老版本&#xff0c;那么只要添加 Wine 1.2 的软件源&#xff0c;然后去新立得…

字体Times New Roman

Windows系统中的字体是Monotype公司为微软公司制作的Times New Roman PS&#xff08;TrueType字体&#xff09;&#xff0c;视窗系统从3.1版本开始就一直附带这个字体。而在苹果电脑公司的麦金塔系统中使用的是Linotype公司的 Times Roman (在Macintosh系统中直接简称为‘Times…

磁盘调度算法

1&#xff0c;假设磁头当前位于第105道&#xff0c;正在向磁道序号增加的方向移动&#xff0c;现有一个磁道访问请求序列为&#xff1a;35&#xff0c;45&#xff0c;12&#xff0c;68&#xff0c;100&#xff0c;180&#xff0c;170&#xff0c;195&#xff0c;试用先来先服务…

C++11 std::shared_ptr的std::move()移动语义底层分析

std::shared_ptr的std::move()移动语义底层分析 执行std::move()之前&#xff1a; 执行std::move()之后&#xff1a; 结论&#xff1a;一个浅拷贝 sizeof(std::shared_ptr) 8字节 pss1 : 0x0028fea8 pss2 : 0x0028fea0 &#xff08;栈是逆增长的&#xff09; 观察执行std::m…

python去掉字符串最外侧的引号_疯狂Python讲义第二章读书笔记

本章讲解变量和简单类型2.1 从注释讲起单行注释使用#&#xff0c;#后面的代码被注释掉不会运行&#xff0c;如&#xff1a;# print(123) 注释掉后123不会输出。多行注释使用""" """&#xff0c;三个双引号&#xff0c;双引号中的内容注释掉&…

【转】深入分析 ASP.NET Mvc 1.0 – 1. 深入MvcHandler

MvcHandler是一个mvc程序真正开始的地方&#xff0c;因为你可以直接看到并调试它的源码。 MvcHandler的主要代码如下:protected internal virtual void ProcessRequest(HttpContextBase httpContext) {AddVersionHeader(httpContext);// Get the controller typestring control…

C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析

右值引用保存临时变量&#xff08;函数返回值&#xff09;的问题 &#xff1a;临时变量是右值 1、普通变量接收函数返回值&#xff1a; 2、右值引用变量接收函数返回值&#xff1a; 3、用const int& 和右值引用是一样的效果&#xff0c;只是const int& 就不可以修改…

axure源文件_Axure教程:实现网易云音乐有声播放效果

为了方便讲解&#xff0c;我们首先在桌面新建一个文件夹&#xff0c;命名为音乐。1、将自己想要演示播放的MP3音乐文件放在这个文件夹里面。2、给播放页添加一个中继器&#xff0c;随便命名&#xff0c;我给它命名为【音乐地址链接器】&#xff0c;用来链接播放本地音乐文件。并…

ffplay分析(从启动到读取数据线程插入到字幕、音频、视频解码前的队列操作)

《ffplay的数据结构分析》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到SDL输出&#xff09;》 《ffplay分析 &#xff08;视频从Frame(解…

并发进程同步

P是荷兰语Proberen&#xff08;测试&#xff09;的首字母。为阻塞原语&#xff0c;负责把当前进程由运行状态转换为阻塞状态&#xff0c;直到另外一个进程唤醒它。也就是不好的一方面。 V是荷兰语Verhogen&#xff08;增加&#xff09;的首字母。为唤醒原语&#xff0c;负责把一…