利用C#實(shí)現(xiàn)斐波那契數(shù)列的圖形化展示

c#
小樊
82
2024-09-10 10:49:29

要使用C#實(shí)現(xiàn)斐波那契數(shù)列的圖形化展示,你可以使用Windows Forms或WPF。這里我將給出一個(gè)簡(jiǎn)單的Windows Forms示例。首先,確保你已經(jīng)安裝了Visual Studio。

  1. 打開(kāi)Visual Studio,創(chuàng)建一個(gè)新的Windows Forms應(yīng)用程序項(xiàng)目(File > New > Project > Windows Forms App (.NET))。

  2. 在解決方案資源管理器中,雙擊“Form1.cs”以打開(kāi)設(shè)計(jì)器。

  3. 從工具箱中,將以下控件添加到表單上:

    • 一個(gè)Button控件,用于計(jì)算斐波那契數(shù)列。
    • 一個(gè)TextBox控件,用于輸入斐波那契數(shù)列的項(xiàng)數(shù)。
    • 一個(gè)PictureBox控件,用于顯示斐波那契數(shù)列的圖形化展示。
  4. 為Button控件設(shè)置Click事件處理程序,然后雙擊Button以打開(kāi)代碼視圖。

  5. 在Click事件處理程序中,編寫(xiě)以下代碼:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace FibonacciGraphics
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int n;
            if (int.TryParse(textBox1.Text, out n))
            {
                DrawFibonacci(n);
            }
            else
            {
                MessageBox.Show("請(qǐng)輸入一個(gè)有效的整數(shù)。");
            }
        }

        private void DrawFibonacci(int n)
        {
            Bitmap bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            using (Graphics g = Graphics.FromImage(bitmap))
            {
                g.Clear(Color.White);
                int[] fib = new int[n];
                fib[0] = 0;
                fib[1] = 1;

                for (int i = 2; i < n; i++)
                {
                    fib[i] = fib[i - 1] + fib[i - 2];
                }

                int max = fib[n - 1];
                float scale = (float)pictureBox1.Height / max;

                for (int i = 1; i < n; i++)
                {
                    int x1 = (int)(i * pictureBox1.Width / (float)n);
                    int y1 = (int)(pictureBox1.Height - fib[i - 1] * scale);
                    int x2 = (int)((i + 1) * pictureBox1.Width / (float)n);
                    int y2 = (int)(pictureBox1.Height - fib[i] * scale);

                    g.DrawLine(Pens.Black, x1, y1, x2, y2);
                }
            }

            pictureBox1.Image = bitmap;
        }
    }
}
  1. 運(yùn)行程序,輸入斐波那契數(shù)列的項(xiàng)數(shù),然后點(diǎn)擊按鈕。你將看到斐波那契數(shù)列的圖形化展示。

注意:這個(gè)示例僅適用于較小的斐波那契數(shù)列項(xiàng)數(shù),因?yàn)樗赡軣o(wú)法適應(yīng)大型數(shù)據(jù)集的繪圖。對(duì)于更復(fù)雜的圖形化展示,你可能需要考慮使用其他技術(shù),如自定義控件或第三方圖形庫(kù)。

0