實驗五 圖形設計

每復制一個方法都要綁定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.pswp.cn/news/379090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379090.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

yuv編碼成h264格式寫成文件

yuv編碼成h264格式寫成文件 &#xff08;使用ffmpeg 編碼yuv420p編碼成h264格式&#xff09; #include <stdio.h> #include <stdlib.h> #include <stdint.h>#include <libavcodec/avcodec.h> #include <libavutil/time.h> #include <libavut…

c++ stl隊列初始化_聲明,初始化和訪問向量| C ++ STL

c stl隊列初始化Here, we have to declare, initialize and access a vector in C STL. 在這里&#xff0c;我們必須聲明&#xff0c;初始化和訪問C STL中的向量。 向量聲明 (Vector declaration) Syntax: 句法&#xff1a; vector<data_type> vector_name;Since, vec…

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…

nsis 修改exe執行權限

通過修改注冊表的方式&#xff0c;修改exe的執行權限。&#xff0c;以下例子是使用管理員運行。 ;添加admin權限 SectionWriteRegStr HKCU "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\spp.exe" "RUNASADMIN&qu…

linux ftp日志_linux學習筆記(一)——Linux分區和目錄結構

linux學習筆記&#xff08;一&#xff09;——Linux分區和目錄結構安裝Linux時&#xff0c;手動掛載分區的情況下&#xff0c;/ 和 swap 是必須要掛載的&#xff0c;其他/home、/boot 等可以根據需要自行掛載。一般來說&#xff0c;簡單的話&#xff0c;建議掛載三個分區&#…

C#通過VS連接MySQL數據庫實現增刪改查基本操作

創建一個數據庫wsq 里面有一張beyondyanyu表 表里面有id(int)、names(varchar)、count(int)、passwords(varchar) 數據可以自己添 1、導入MySQL引用&#xff0c;你需要從官網或者其他地方下載&#xff0c;私聊我也可以 using MySql.Data.MySqlClient; 2、創建MySqlConnection對…

使用ffmpeg的filter處理yuv數據包括split filter(分流)、crop filter(裁剪)、vflip filter(垂直向上的翻轉)、overlay filter(合成)

使用ffmpeg的filter處理yuv數據包括split filter(分流)、crop filter(裁剪)、vflip filter(垂直向上的翻轉)、overlay filter(合成) #include <stdio.h>#include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libavfilter/avfil…

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 則更強調“在計算機上實現協議應該開…

ffmpeg進行混音,將兩路音頻pcm數據合成一路輸出

ffmpeg進行混音&#xff0c;將兩路音頻pcm數據合成一路輸出 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map> #include <mutex> #include <cstdio> #include <cstdint> #include <string> #include <memory>exter…

python sep函數_Python中帶有print()函數的sep參數

python sep函數sep parameter stands for separator, it uses with the print() function to specify the separator between the arguments. sep參數代表分隔符&#xff0c;它與print()函數一起使用以指定參數之間的分隔符。 The default value is space i.e. if we dont us…

關于 MySQL 主從復制的配置(轉)

來源&#xff1a;http://www.oschina.net/bbs/thread/10388設置Mysql的主從設置很重要&#xff0c;有如下幾點用處&#xff1a;1 做備份機器&#xff0c;一旦主服務器崩潰&#xff0c;可以直接啟用從服務器作為主服務器2 可以直接鎖定從服務器的表只讀&#xff0c;然后做備份數…

Silverlight 同域WCF免跨域文件

在sl3使用wcf時常常會因為sl中調用了不同域的wcf服務而導至調用服務失敗&#xff0c;記得在很久以前sl當是只支持同域的訪問&#xff0c;那么讓我有一個想法&#xff0c;就是在sl引用時可以動態地取得當前sl所在的域&#xff0c;而wcf服務也必須同時部署到這個域下邊&#xff0…

使用ffmpeg 的 filter 給圖片添加水印

使用ffmpeg 的 filter 給圖片添加水印。 main.c #include <stdio.h>#include <libavfilter/avfilter.h> #include <libavfilter/buffersrc.h> #include <libavfilter/buffersink.h> #include <libavformat/avformat.h> #include <libavcodec…

程序崩潰 分析工具_程序分析工具| 軟件工程

程序崩潰 分析工具A program analysis tool implies an automatic tool that takes the source code or the executable code of a program as information and produces reports with respect to a few significant attributes of the program, for example, its size, multif…

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…