1.图片缩放

using System;
using System.Windows.Forms;
using System.Drawing;
class haha : Form
{static void Main(){Application.Run(new haha());}Bitmap bit;int x, y;haha(){ClientSize = new Size(400, 400);bit = new Bitmap(800, 800);Graphics.FromImage(bit).DrawImage(Image.FromFile("beauty.jpg"),new Rectangle(new Point(0,0),new Size(bit.Width,bit.Height)));KeyDown += roll;MouseWheel += zoom;x = y = 0;}void zoom(object o, MouseEventArgs e){if ((bit.Width < 100||bit.Height<100)&&e.Delta<0) return;if (bit.Width + e.Delta < 0 || bit.Height + e.Delta < 0) return;Bitmap b = new Bitmap(bit.Width + e.Delta, bit.Height + e.Delta);Graphics.FromImage(b).DrawImage(bit, new Rectangle(0, 0, b.Width, b.Height));bit = b;draw();}void draw(){if (x >= bit.Width - ClientSize.Width) x = bit.Width - 1 - ClientSize.Width;if (y >= bit.Height - ClientSize.Height) y = bit.Height - ClientSize.Height - 1;if (x < 0) x = 0;if (y < 0) y = 0;Bitmap b = new Bitmap(ClientSize.Width, ClientSize.Height);int i, j;for (i = 0; i < ClientSize.Width; i++)for (j = 0; j < ClientSize.Height; j++){if (x + i >= bit.Width || y + j >= bit.Height)b.SetPixel(i, j, Color.AliceBlue);else b.SetPixel(i, j, bit.GetPixel(x + i, y + j));}CreateGraphics().DrawImage(b, 0, 0);}void roll(object o, KeyEventArgs e){switch (e.KeyCode){case Keys.Up: y -= 10; break;case Keys.Down: y += 10; break;case Keys.Right: x += 10; break;case Keys.Left: x -= 10; break;}draw();}
}

2.位图操作-乱画

using System.Drawing;
using System.Windows.Forms;
using System;
class haha:Form
{Bitmap bit;Random r = new Random();static void Main(){Application.Run(new haha());}void circle(int xx, int yy, int r,Color c){int x; double y;for (x = xx - r; x < xx + r; x++){y = Math.Sqrt(r * r - (xx - x) * (xx - x));if (x < 0 || yy - y < 0 || x >= bit.Width || yy + y >= bit.Height) continue;bit.SetPixel(x, (int)(y+yy), c);bit.SetPixel(x, (int)( yy-y), c);}}void line(int x1,int y1,int x2,int y2,Color c){int fx, fy, tx, ty;if(x1==x2){if(y1>y2){fx=x2;fy=y2;tx=x1;ty=y1;}else {fx=x1;fy=y1;tx=x2;ty=y2;}int i;for (i = fy; i < ty; i++){bit.SetPixel(x1, i, c);}CreateGraphics().DrawImage(bit,0,0);return;}if (x1 > x2){fx = x2; fy = y2;tx = x1; ty = y1;}else{fx = x1; fy = y1;tx = x2; ty = y2;}double k = (ty - fy) / (tx - fx);double y;int x;for (x = fx; x < tx; x++){y = k * x + ((double)y1 - k * x1);bit.SetPixel(x, (int)y, c);}CreateGraphics().DrawImage(bit, 0, 0);}haha(){ClientSize = new Size(500, 500);bit = new Bitmap(ClientSize.Width, ClientSize.Height);Graphics.FromImage(bit).Clear(Color.White);Timer t1 = new Timer();t1.Interval = 5000;t1.Tick += draw_line;//t1.Start();Timer t2 = new Timer();t2.Interval = 10;t2.Tick += draw_circle;t2.Start();}void draw_line(object o,EventArgs e){line(r.Next()%ClientSize.Width, r.Next()%ClientSize.Height, r.Next()%ClientSize.Width, r.Next()%ClientSize.Height, Color.FromArgb(r.Next()));}void draw_circle(object o, EventArgs e){int rr=r.Next() % 100 + 1;int xx=r.Next() % ClientSize.Width;int yy=r.Next() % ClientSize.Height;for (int i = 0; i < 16&&rr>i;i++ )circle(xx,yy , rr-i, Color.FromArgb(r.Next()));CreateGraphics().DrawImage(bit, 0, 0);}
}

3.图片旋转

    public partial class Form1 : Form{public Form1(){InitializeComponent();KeyDown += draw;bitmap = new Bitmap(Image.FromFile("0.jpg"));ClientSize = new Size(700,700);}Bitmap rotate(Bitmap source){Bitmap bit = new Bitmap(source.Height, source.Width);for (int x = 0; x < bit.Width; x++){for (int y = 0; y < bit.Height; y++){bit.SetPixel(x, y, source.GetPixel(bit.Height- y-1, x));}}return bit;}Bitmap bitmap;void draw(object o, EventArgs e){CreateGraphics().Clear(Color.Black);bitmap = rotate(bitmap);CreateGraphics().DrawImage(bitmap, 0, 0);}}

4.鼠标单击拖动图片

using System;
using System.Windows.Forms;
using System.Drawing;
class window : Form
{Rectangle rec=new Rectangle(23,23,23,23);Bitmap b=new Bitmap("beauty.jpg");int x, y;int dx, dy;bool move;public window(){MouseClick +=click;MouseMove += OnMove;Paint += paint;Size = new Size(800,800);x = y = 0;}void OnMove(object o, MouseEventArgs e){if (move){Bitmap bit = new Bitmap(Width,Height);Graphics g = Graphics.FromImage(bit);g.Clear(Color.AliceBlue);g.DrawImage(b, e.X+dx, e.Y+dy);for (int i = 10; i < bit.Width; i++)bit.SetPixel(i, 100, Color.Red);CreateGraphics().DrawImage(bit, 0, 0);}}void paint(object o, EventArgs e){CreateGraphics().DrawImage(b,0,0);}void click(object o, MouseEventArgs e){if (e.X > x && e.X < x + b.Width && e.Y > y && e.Y < y + b.Height && move == false) { move = true; dx = x - e.X; dy = y - e.Y; }else if (move == true){x = e.X+dx; y = e.Y+dy;move = false;}}public static void Main(){  Application.Run(new window());}
}

5.没有边框的窗口

    public partial class Form1 : Form{public Form1(){ClientSize = Screen.PrimaryScreen.Bounds.Size;FormBorderStyle = FormBorderStyle.None;Paint += draw;TransparencyKey = DefaultBackColor;ShowInTaskbar = false;}void draw(object o, EventArgs e){CreateGraphics().Clear(DefaultBackColor);Bitmap bit=new Bitmap(ClientSize.Width,ClientSize.Height);bit.MakeTransparent(Color.White);Graphics.FromImage(bit).DrawString("东大微雕\n文韬武略\n天下第一", new Font(new FontFamily("Consolas"),200,GraphicsUnit.Pixel),new SolidBrush(Color.Red),new Rectangle(30,30,ClientRectangle.Right,ClientRectangle.Bottom));//BackgroundImage = bit;//释放上面这句就会导致闪烁CreateGraphics().DrawImage(bit,ClientRectangle);}}

6.全屏的窗口

    public partial class Form1 : Form{public Form1(){InitializeComponent();Size = MaximumSize;WindowState = FormWindowState.Maximized;FormBorderStyle = FormBorderStyle.None;Paint += paint;files= Directory.GetFiles(Directory.GetCurrentDirectory(),"*.jpg");KeyDown += down;}void down(object o, KeyEventArgs e){index++;Invalidate();}string[] files;int index=0;void paint(object o, PaintEventArgs e){Bitmap bit = new Bitmap(ClientSize.Width,ClientSize.Height);Graphics.FromImage(bit).DrawImage(Image.FromFile(files[index%files.Length]), ClientRectangle);e.Graphics.DrawImage(bit,0,0);}}

7.分工演示器

    public partial class Form1 : Form{SpeechSynthesizer teller = new SpeechSynthesizer();void tell(string s){teller.Speak(s);}void crossLine(int from, int to){int w = bit.Width / (size + 1);int h = bit.Height / (size + 1);Graphics g = Graphics.FromImage(bit);Pen p = new Pen(new SolidBrush(Color.Gold),4);g.DrawLine(p, work[from] * w + w + w / 2, from * h + h + h / 2, work[to] * w + w + w / 2, to * h + h + h / 2);g.DrawLine(p, work[to] * w + w + w / 2, from * h + h + h / 2, work[from] * w + w + w / 2, to * h + h + h / 2);CreateGraphics().DrawImage(bit,0,0);}void go(){int i, j;bool changed = true;while (changed){tell("只要有变化,那就接着调整.调整哇调整,一直到没法再调整了");changed = false;for (i = 0; i < size; i++){for (j = size - 1; j >= 0; j--){if (a[i, work[j]] + a[j, work[i]] < a[i, work[i]] + a[j, work[j]]){crossLine(i, j);tell("工人" + man[i] + "干任务" + (char)(work[i] + 'A') + "需要" + a[i, work[i]] + "的时间");tell("工人" + man[j] + "干任务" + (char)(work[j] + 'A') + "需要" + a[j, work[j]] + "的时间");tell("他们交换一下任务,岂不是更快");int temp = work[i];work[i] = work[j];work[j] = temp;draw();changed = true;}}}}}int[] work;public Form1(){InitializeComponent();WindowState = FormWindowState.Maximized;Text = "分工演示器-written for jiege,made by weidiao";var set = teller.GetInstalledVoices();teller.SelectVoice(set[0].VoiceInfo.Name);init();Paint += delegate{draw();go();tell("杰哥,你可以百度一下模拟淬火算法,这种方法适用于解决NP问题,但它的缺点就是最后所求的结果不一定对");tell("这种方法能够保证得到局部最优解,至于有多么接近最优解,这取决于你所选择的初始值");tell("于是,我们可以大量的用很多初始值进行迭代优化,从中选取最好的");};Resize += delegate{bit = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);draw();};}Bitmap bit;char[] man = "甲乙丙丁戊己庚辛壬癸".ToCharArray();void draw(){Graphics g = Graphics.FromImage(bit);g.Clear(Color.Black);int i, j;int w = bit.Width / (size + 1);int h = bit.Height / (size + 1);g.FillRectangle(new SolidBrush(Color.Gray), new Rectangle(0, 0, w - 2, h - 2));g.DrawLine(new Pen(new SolidBrush(Color.Black), 2), 0, 0, w, h);g.DrawString("任务", new Font("楷体", 20, FontStyle.Bold), new SolidBrush(Color.Crimson), new RectangleF(w / 2, 0, w / 2, h / 2));g.DrawString("人物", new Font("楷体", 20, FontStyle.Bold), new SolidBrush(Color.DarkOrange), new RectangleF(0, h / 2, w / 2, h / 2));for (i = 0; i < size; i++){RectangleF rec = new RectangleF(w + w * i, 0, w - 2, h - 2);g.FillRectangle(new SolidBrush(Color.Gray), rec);g.DrawString((char)(i + 'A') + "", new Font("Consolas", 40, FontStyle.Bold), new SolidBrush(Color.Crimson), rec);}for (i = 0; i < size; i++){RectangleF rec = new RectangleF(0, h + i * h, w - 2, h - 2);g.FillRectangle(new SolidBrush(Color.Gray), rec);g.DrawString(man[i] + "", new Font("Consolas", 40, FontStyle.Bold), new SolidBrush(Color.DarkOrange), rec);}for (i = 0; i < size; i++){for (j = 0; j < size; j++){RectangleF rec = new RectangleF(j * w + w, h + i * h, w - 2, h - 2);Color back = work[i] == j ? Color.Gainsboro : Color.Gray;g.FillRectangle(new SolidBrush(back), rec);g.DrawString(a[i, j] + "", new Font("Consolas", 40, FontStyle.Bold), new SolidBrush(Color.Red), rec);}}CreateGraphics().DrawImage(bit, 0, 0);}int[,] a;Random r = new Random();int size;void init(){size = 4;a = new int[size, size];work = new int[size];int i, j;for (i = 0; i < size; i++) work[i] = i;for (i = 0; i < size; i++){for (j = 0; j < size; j++){a[i, j] = r.Next() % 20 + 2;}}}}

转载于:https://www.cnblogs.com/weiyinfu/p/6165443.html

C# Winform代码片段-大二下学期的垃圾代码相关推荐

  1. 大二下学期ACM比赛总结

    大二下学期ACM比赛总结 1. 写在前面: 大二也已经结束了,下学期参加的ACM比赛或大或小也有好几场了,协会内部需要写书面总结,那就好好总结一下吧. 2. 2017.04.09 北理校赛 第一场参加 ...

  2. 大数据方向学习系列——1.大二下学期学习规划

    第一章 大二下学期--学习规划 文章目录 1.个人情况介绍 1.个人情况介绍 本人双非本科,学习数据科学与大数据技术,目前处于大二下,可以写进简历的:只有电赛拿了省一,校级社团在任主席.学习过ptho ...

  3. 第三十七周总结——大二下学期开学总结

        上一周末总结没写,今天实在不想写项目了,就来划下水吧.     从大二上学期最后一段时间开始,到现在大二下学期刚开始,几乎都没停过,一直都是写项目,有点麻木了.总结起来有一下几点. 一系列问题 ...

  4. 计算机大二学什么,本科计算机科学与技术大二下学期学什么,女的适合什么专业好...

    技校网专门为您推荐的类似问题答案 问题1: 大二下学期开始努力还来得及吗,我是美术学院学游戏专业的 来得及,但是最重要的是你的心态,你如果不喜欢,你就要为自己找到一个方法去喜欢,因为你已经选择的,以前 ...

  5. 大二下学期的规划以及问题

    和大一的混沌不一样,大二的迷茫比大一浅些.比大一多懂了很多东西,同时也隐隐能看清自己将会走什么样的路,在我看来计算机中一直要学习的是算法,比较难的也是算法. 很多时候遇到一些经典的问题,经典的算法在没 ...

  6. 大二下学期大数据可视化课程学期总结

    大二下学期大数据可视化课程的学期总结 在大二的下学期学习了大数据可视化这门课程,主要是用Java后台+Echarts实现的.Java后台使用的是spring boot + mybatis数据库使用的是 ...

  7. 2013年大二下学期日记(感悟)

    现在是2021年,我挺喜欢过去的自己,给将来的自己发一封邮件,表达一下当下的心情.或许,在一个不经意间的深夜,我就收到了过去寄来的一封邮件,看着当初的稚嫩和天真辞藻语句,这是一件多么美好又美妙的事情哇 ...

  8. 开学展望(大二下学期)

    如标题,我刚开学,现在也是大二下学期第一次到小组学习.要说这个星期我学习的前端知识其实没什么,多的就是改改我们最近写的项目的bug,还有就是和往常一样准备开学的事项. 回想大二上学期和这个寒假,我感觉 ...

  9. 2018年寒假假期安排以大二下学期学习安排

    一晃就大二了,学习也进入正轨了,相较于大一的懵懂玩乐,大二也要开始好好学习一技之长了. 首先,寒假期间复习尚未通过的课程,完成基础的奠基.然后在寒假期间利用闲散时间学习两门网课.最后在多看一些课外书籍 ...

最新文章

  1. excel python开发_Excel + Python = 威力无比
  2. 【CVPR2020-Oral】上交华为:GPA跨域目标检测
  3. silverlight 打开html_在Silverlight中嵌入HTML或aspx页面-阿里云开发者社区
  4. C#中串口通信编程 收藏
  5. 线性Frequency Principle动力学:定量理解深度学习的一种有效模型
  6. 吐血整理 | 肝翻 Linux 进程调度所有知识点|中奖揭晓
  7. php7 提示500错误解决,升级php7出现500错误怎么办
  8. Flink 小贴士 (7): 4个步骤,让 Flink 应用达到生产状态
  9. c++题目大坑:分数化小数
  10. mysql 新增字段 添加字段 删除字段 修改字段 级联删除 级联更新 等
  11. 类文件Android 代码混淆 以及 反编译 的实现类文件
  12. CAS 服务端的搭建
  13. R语言实现随机森林代码
  14. 好用的计算属性clac
  15. 《繁荣的真相》读书笔记
  16. 抖音数据分析工具pc端_用于分析Windows PC上硬盘空间的四个最佳免费工具
  17. 基础画图工具matplotlib
  18. 还在想假期去哪玩?直接做一个旅游攻略小程序
  19. Android学习之省份城市县区选择+向上一级活动返回数据
  20. 云计算设计模式(二十)——调度程序代理管理者模式

热门文章

  1. The Linux Process Principle, PID、PGID、PPID、SID、TID、TTY
  2. J.U.C并发框架源码阅读(十七)ReentrantReadWriteLock
  3. 走在梦的路上 绝不回头
  4. appium部分操作
  5. 【重识 HTML + CSS】基本 CSS 属性
  6. 那些年我踩过的关于layui表格的坑
  7. easyui tree设置选中节点的方法
  8. vnpy学习_02各文件功能梳理
  9. EM从最大似然到EM算法浅解
  10. 无需代码绘制出的热力图,0基础小白也能3分钟上手