C#画一个有故事的爱心-创新互联

目录

你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事网站设计、成都网站建设企业网站建设、手机网站制作、网页设计、品牌网站建设、网页制作、做网站、建网站。创新互联建站拥有实力坚强的技术研发团队及素养的视觉设计专才。

前言

一、界面设计

二、关键技术

1.编写逻辑

2.爱心函数

3.代码实现

4.添加图片

5.效果展示

总结


前言

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


一、界面设计

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

二、关键技术 1.编写逻辑

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

随着时间一天天过去,

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

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

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

2.爱心函数

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

公式如下:

x=-2.5~2.5,间隔为0.01

y=\lim_{-2.5\to 2.5}f(x)=\sqrt[3]{x^{2}}+0.9*\sqrt{6.25-x^{2}}*sin(day/10*\pi *x)

day为天数

3.代码实现

在timer1中添加如下代码:

////// 绘制笔刷颜色
        ///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;//设置抗锯齿
            ListListP = new List();
            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);  //心形曲线函数Y
                y = 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.效果展示

总结

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

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:C#画一个有故事的爱心-创新互联
文章链接:http://ybzwz.com/article/ipcsh.html