Wq_wn 2023-03-29 22:09 采纳率: 90.9%
浏览 33
已结题

C#中算术运算导致溢出


private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            // 获取用户输入的圆形中心点坐标,半径,等分长度
            double rx = Convert.ToDouble(textBox1.Text);
            double ry = Convert.ToDouble(textBox2.Text);
            double r = Convert.ToDouble(textBox3.Text);
            double d = Convert.ToDouble(textBox4.Text);

            // 创建绘图对象
            Graphics g = e.Graphics;
            g.Clear(Color.White);

            // 获取坐标轴原点的坐标
            double originX = this.ClientSize.Width / 2;
            double originY = this.ClientSize.Height / 2;

            // 绘制坐标轴

            Pen axisPen = new Pen(Color.Black, 2);
            g.DrawLine(axisPen, (float)originX, 0, (float)originX, this.ClientSize.Height);
            g.DrawLine(axisPen, 0, (float)originY, this.ClientSize.Width, (float)originY);

            // 计算圆形的点坐标
            double angle = Math.PI * 2 * d / r; // 每个角度的大小
            PointF[] pointF = new PointF[(int)(r / d)]; // 点数组

            for (int i = 0; i < r / d; i++)
            {
                double x = r * Math.Cos(angle * i) + rx + originX; // 计算x坐标
                double y = r * Math.Sin(angle * i) + rx + originY; // 计算y坐标
                pointF[i] = new PointF((float)x, (float)y); // 将坐标保存到数组中
            }
            // 绘制圆形
            Pen Pen = new Pen(Color.Red, 2);
            g.DrawPolygon(Pen, pointF);

            //保存数据到text文本文件中
            using (StreamWriter writer = new StreamWriter("coordinates.txt"))
            {
                for (int i = 0; i < r / d; i++)
                {
                    writer.WriteLine($"({r * Math.Cos(angle * i) + rx}, {r * Math.Sin(angle * i) + rx},{0})");
                }

            }
        }

各位牛人帮忙看一下为什么这句 PointF[] pointF = new PointF[(int)(r / d)]; // 点数组,会显示算术运算导致溢出?该怎么改正较好?我是初学者,求各位牛人指点

  • 写回答

2条回答 默认 最新

  • 文盲老顾 WEB应用领新星创作者 2023-03-29 22:21
    关注

    检查 d 是不是变成 0 了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月30日
  • 已采纳回答 3月30日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败