目录

前言

一、界面设计

二、关键技术

1.编写逻辑

2.爱心函数

3.代码实现

4.添加图片

5.效果展示

总结


前言

恋爱中,爱心❤是必不可少的道具,但一般的爱心体现不了心意,现在我们用C#画一个有故事的爱心。


一、界面设计

窗体中需要添加一个按钮,一个label,两个pictureBox,一个timer,一个imageList,如图所示:

二、关键技术

1.编写逻辑

月老用一条简单的红线把两个人牵到一起,

随着时间一天天过去,

两人之间的故事越来越多,

这些故事让这条红线越来越蜿蜒曲折,

也让这条红线渐渐的变成了爱的形状。

2.爱心函数

现在故事有了,然后需要把这条红线画出来,只需要用公式就能画出来

公式如下:

x=-2.5~2.5,间隔为0.01

day为天数

3.代码实现

在timer1中添加如下代码:

 /// <summary>/// 绘制笔刷颜色/// </summary>private Brush Color { get; set; } = Brushes.Red;int day = 1;private void timer1_Tick(object sender, EventArgs e){label1.Text = "我们在一起" + day + "天了";Bitmap bmp = new Bitmap(Width, Height);Graphics g = Graphics.FromImage(bmp);  //如果想看到绘制的过程可以使用 e.Graphics 直接绘制在窗体上而不是绘制在图片中再替换背景g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//设置抗锯齿List<PointF> ListP = new List<PointF>();for (double x = -2.5; x < 2.5; x = x + 0.01){double y = 0;y = Math.Pow(x * x, (double)1 / 3) + 0.9 * Math.Sqrt(6.25 - Math.Pow(x, 2)) * Math.Sin(day / 10 * Math.PI * x);  //心形曲线函数Yy = y * -1;double x2 = x * 100;y = y * 100;x2 = x2 + Width / 2;//因为Form窗体的原点在左上角,所有需要把坐标变为窗体中心y = y + Height / 2;PointF p = new PointF();p.X = (float)x2;p.Y = (float)y;ListP.Add(p);//添加所有的点}Pen pen = new Pen(Color, 2);for (int i = 1; i < ListP.Count(); i++){g.DrawLine(pen, ListP[i - 1], ListP[i]);//把所有的点都练成线}BackgroundImage = bmp;//显示画的图片day = day + 3;if (day > 400)//大于400时结束{day = 1;timer1.Stop();}}

4.添加图片

在pictureBox中添加男生和女生的头像,代码如下:

  public Form1(){DoubleBuffered = true;//使用辅助缓冲区重绘其图面,以减少或避免闪烁SetStyle(ControlStyles.ResizeRedraw | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);InitializeComponent();pictureBox1.Image = imageList1.Images[0];pictureBox2.Image = imageList1.Images[1];}private void button1_Click(object sender, EventArgs e){timer1.Start();}

5.效果展示

这个爱心是不是既浪漫也有故事,那个女生会不会心动呢。

C#画一个有故事的爱心相关推荐

  1. vbs画动态爱心代码_前端必看之如何用CSS3画一个八卦和爱心

    昨天雷雨交加,燥热有所缓解.今晨空气清新,再加上马上三天小长假,心情很不错,祝各位小长假玩的开心.那么,今天就用CSS3做些"不正紧"的事:画八卦和爱心. CSS3我们一般都是用来 ...

  2. [html] 使用svg画一个爱心

    [html] 使用svg画一个爱心 <head><style>*,*:before,*:after {box-sizing: border-box;margin: 0;padd ...

  3. 如何使用python画一个爱心

    1 问题 如何使用python画一个爱心. 2 方法 桌面新建一个文本文档,文件后缀改为.py,输入相关代码ctrl+s保存,关闭,最后双击运行. 代码清单 1 from turtle import ...

  4. python画一个爱心

    大家好这是我的地一篇博客,我要写一个关于python的文章我要用python写一个爱心. 不说别的,先看效果 效果如下: 话不多说,上代码,在这之前要下载python下载这事咱们放在最后现在上代码!! ...

  5. 七夕小案例:用代码给心爱的她画一个爱心

    一.爱心示例: 二.开始写代码: /* * Hi.宝贝! * 这么久了.还没和宝贝说过我的工作呢! * 我是个前端工程师.俗称程序员.网页相关. * 如这个页面.就是个什么也没有的网页. * 我的工作 ...

  6. java输出画一个爱心

    这是一个用 Java 语言输出画一个爱心的示例代码: public class Heart {public static void main(String[] args) {double x, y, ...

  7. 如何用tkinter给你爱人画一个爱心,这满满的油腻感是怎么回事?

    如何用tkinter给你女朋友画一个爱心,这满满的油腻感是怎么回事? 前言 还记得在之前的文章中,我们所提及到画桃心的方式吗? 之前使用的模块是matplotlib又或者是使用tkinter显示桃心图 ...

  8. 怎么用计算机画爱心,如何用几何画板画一个爱心

    作为强大的几何绘图软件,千万不要以为几何画板只能画一些基本几何图形,其实它的功能强大着呢.其实在使用之后,会发现原来还能用它画出各种函数图像,比如画出类似心形的函数,下面就来一起学习. 具体绘制步骤如 ...

  9. Python编程 利用Python画一个爱心

    作者简介:一名在校计算机学生.每天分享Python的学习经验.和学习笔记.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.所使用的库 1.turtle库 2.情人 ...

最新文章

  1. 能带曲线图绘制python_如何使用python的matplotlib模块画折线图
  2. [Buzz.Today]HP停止 webOS 设备的研发和运作
  3. flex页面布局练习--知乎
  4. Android--使用XMLPull解析xml
  5. 如何覆盖 SAP Spartacus 默认的 css style
  6. Ansible: hosts文件拆分为inventory和定义inventory全局变量
  7. shell 脚本实战笔记(7)--集群网络相关知识和环境搭建
  8. Java开发之I/O读取文件实例详解
  9. 邢波老师致广大学员的一封信(2010-10-26)
  10. python处理access数据库教程_Python操作Access数据库基本步骤分析
  11. mybatis查询返回一个三级目录
  12. CTF入门之php文件包含
  13. 安卓客户端代码中修改服务器ip,安卓客户端代码中修改服务器ip
  14. Android studio: The number of method references in a .dex file cannot exceed 64K. Learn how to resol
  15. 码市coding不能下载
  16. 基于单片机的电压电流表设计
  17. PHP递归算法的简单实例
  18. iPhone SDK 包含哪些东西
  19. hihoCoder#: 博弈游戏·Nim游戏
  20. 右键栏添加管理员获取所有权

热门文章

  1. PVZ系列六 | 僵尸动画转换
  2. 【机器学习-学习笔记】吴恩达老师机器学习课的笔记(黄海广博士)
  3. 深度学习入门笔记(李沐)(一)
  4. 计算机专业教师结构化面试题目,2019教师资格证结构化面试:考官常问的结构化题目(附带答案)...
  5. 陕西二本计算机软件工程,高考分数不理想,仍然想报考软件工程专业,这四所二本大学不错...
  6. linux jar包zip包 进入修改配置文件
  7. 揭秘你所看不见的技术原理 - 附近的人
  8. 微信小程序完成简单的模仿抖音点赞效果动画wx.createAnimation
  9. input自动填充后背景颜色被覆盖的问题
  10. GD MCU的SWD和SCLK管脚被当成IO脚占用导致找不到设备