宝帅哥 2022-04-06 14:00 采纳率: 50%
浏览 84
已结题

C#利用pictureBox绘制类似chart控件,缩放没有chart控件流畅

问题:利用pictureBox绘制类似chart控件时(如下图),需要对pictrueBox控件进行缩放时,利用自定义比例(缩放比例)手动缩放pictureBox然后重新绘制图片时会比使用chart控件卡。为什么?
控件使用:折线图表pictureBox控件、坐标label控件、利用坐标绘制image显示到pictureBox控件上面。
自己理解:绘制东西太多,绘制随窗口缩放时,速度跟不上。不使用chart控件情况下,可以怎么优化呢?

img

        public void updataTabel(Chart chart, Point po)  //Chart为自定义的类,用于保存绘制坐标位置那些东西
        {
            chart.myImage.RotateFlip(RotateFlipType.Rotate180FlipXY);   //上下翻转,用于正向绘制
            chart.g.Clear(Color.FloralWhite);        //背景图片or颜色
            //chart.g.DrawImage(bitmap, chart.po_move_Origin.X,chart.po_move_Origin.Y,chart.new_size.Width,chart.new_size.Height);
            drawAxis( chart,  po);          //画轴线(X、Y)
            drawMousePosition( chart);      //显示鼠标坐标
            if (labels_updata)              //label(坐标)刷新
            {
                label_x_Move(chart);
                label_y_Move(chart);
                labels_updata = false;
            }
            if (true)                       //数据绘制
            {
                draw_datalist(chart);
            }
            //灰色背景
            chart.g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Gray)), chart.po_move_Origin.X, chart.po_move_Origin.Y, chart.new_size.Width, chart.new_size.Height / 2);
            chart.g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Gray)), chart.po_move_Origin.X, chart.po_move_Origin.Y, chart.new_size.Width, chart.new_size.Height / 4);
            chart.g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Gray)), chart.po_move_Origin.X, chart.po_move_Origin.Y, chart.new_size.Width, chart.new_size.Height * 3 / 4);
            chart.g.DrawRectangle(chart.pen1, chart.r1);        //画外边框

            chart.myImage.RotateFlip(RotateFlipType.Rotate180FlipXY);
            chart.pictureBox.Image = chart.myImage;

        }

  • 写回答

2条回答 默认 最新

  • xuzuning 2022-04-06 17:11
    关注

    mschart 是 c 语言写的, c# 想在速度上超过他是不可能的

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

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月6日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。