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

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 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?