c# 画图

RyanNewLife 2020-09-24 11:07:34
有个任务,有一堆点,每个点都有X值和Y值。其中X值比较大大概都在10000以上,每个点的X值波动比较小。Y值大概在100以内。现在要把这些点都描绘出来。我自己整了一下代码,由于X值都超出了窗口像素大小所以无法显示,我想请教下各位这种情况下该怎么写代码?我自己的代码贴出来了,需要怎么修改代码?麻烦各位了

Graphics g = Graphics.FromHwnd(this.Handle);

Pen p = new Pen(Color.Black);

p.EndCap = LineCap.ArrowAnchor;

g.DrawLine(p, new Point(100, this.Height - 100), new Point(this.Width - 100, this.Height - 100));

g.DrawString("x", this.Font, new SolidBrush(Color.Black), new Point(this.Width - 100 + 5, this.Height - 100));

p.EndCap = LineCap.ArrowAnchor;

g.DrawLine(p, new Point(150, this.Height - 50), new Point(150, 100));

g.DrawString("y", this.Font, new SolidBrush(Color.Black), new Point(150, 100 - 20));

int pointCount = 2;

float[] pointX = new float[] {12213.00f,11221.00f};

float[] pointY = new float[] { 32.4f, 33.1f };

PointF[] pointF = new PointF[pointCount];

for (int i = 0; i < pointCount; i++) {

pointF[i] = new PointF(pointX[i], pointY[i]);

}

g.DrawCurve(p, pointF, 1f);

p.Dispose();

g.Dispose();

...全文
628 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
八爻老骥 2020-09-24
  • 打赏
  • 举报
回复
参考excel的曲线图。x轴换个单位就是了,比如屏幕1像素代表实际100个像素。
ziqi0716 2020-09-24
  • 打赏
  • 举报
回复
用现成Chart库,如Live-chart,D3等,这个需求是最基本的. 另外,如果数据量过大,一定要考虑下数据可视化前对数据进行抽样,在缩放时候显示细节,在预览情况下显示趋势就可以了.
RyanNewLife 2020-09-24
  • 打赏
  • 举报
回复
代码要怎么改啊?
我不懂电脑 2020-09-24
  • 打赏
  • 举报
回复
这个只需要把x轴的起点坐标设为10000左右就可以了

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧