紧急:C#中如何画 坐标轴,坐标网格????

zhangjingyi1581101 2011-08-30 01:55:40
请问:
我在C#画曲线时遇到了一些问题,请大家指教: 在WinForm的Panel上
1.如何显示坐标轴?
2.如何显示坐标网格?
是不是坐标轴和坐标网格都用画线段的办法画上去,Graphics本身有比较简捷的办法么?
3.如何实现鼠标点到图像上,动态的显示图像中的坐标?
速求帮助,谢谢!!!
...全文
826 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chp845 2011-08-30
  • 打赏
  • 举报
回复
使用双缓冲去DrawString,DrawLine就可以了呀!
  • 打赏
  • 举报
回复
http://blog.csdn.net/yunhaic/article/details/4496599
当年我画的,程序没问题,你可以复制了用
zhangjingyi1581101 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 anchenyanyue 的回复:]
C# code

public void CreatETFPriceFrame(string[] x, int width, int height, Graphics graphics)
{
graphics.Clear(Color.White);
Font font = new Font("Arial", 9, FontS……
[/Quote]

这个方法调用后,是把它画在那里了?只画了网格,但是怎么没有显示呢?
萧炎 2011-08-30
  • 打赏
  • 举报
回复
如果是相对屏幕坐标,可以调用系统API函数获取
[DllImport("User32.dll")]
public static extern bool GetCursorPos (ref Point NewPoint);

如果是相对picturebox坐标,可是使用mousemove事件,然后在事件里调用e.x,e.y就能获取到坐标位置了
bdmh 2011-08-30
  • 打赏
  • 举报
回复
有什么好求的,自己根据长宽和具体值算一个坐标出来,画就是了
暗尘掩月 2011-08-30
  • 打赏
  • 举报
回复
public void CreatETFPriceFrame(string[] x, int width, int height, Graphics graphics)
{
graphics.Clear(Color.White);
Font font = new Font("Arial", 9, FontStyle.Regular);
LinearGradientBrush lgBrush = new LinearGradientBrush(new Rectangle(0, 0, width, height), Color.Blue, Color.Blue, 1.2f, true);
Pen framePen = new Pen(Color.Blue, 1);
Pen buildPen = new Pen(lgBrush, 1);
int leftX = 60; //最左边的纵线距离图像左边的距离
// 画纵线
for (int i = 0; i < 9; i++)
{
graphics.DrawLine(buildPen, leftX, 50, leftX, height - 32);
leftX += (width - 60 - 50) / 8;
}
//graphics.DrawLine(framePen, width - 50, 50, width - 50, height - 100); //最右边的纵线

int topY = 50; //最上边的横线距离图像顶部的距离
// 画横线
for (int i = 0; i < 8; i++)
{
graphics.DrawLine(buildPen, 60, topY, width - 56, topY);
topY += (height - 50 - 30) / 8;
}
graphics.DrawLine(framePen, 60, topY, width - 56, topY); //最底下的横线

leftX = 35; //最左边文字距离图像左边的距离
// 设置X轴文字内容及输出位置
for (int i = 0; i < x.Length; i++)
{
graphics.DrawString(x[i].ToString(), font, Brushes.Red, leftX, height - 24);
leftX += (width - 60 - 50) / 8;
}
}

ken_flash 2011-08-30
  • 打赏
  • 举报
回复
顶楼上,只能自己一点点计算,完了再DrawString,DrawLine等
wxg_sdwl 2011-08-30
  • 打赏
  • 举报
回复
Bitmap img = new Bitmap(740, 480);
Graphics g = Graphics.FromImage(img);
//定义银灰色画笔
Pen Sp = new Pen(Color.Silver);
//定义大点的字体
Font Tfont = new Font("Arial", 9);
//定义黑色过渡型笔刷
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.Black, Color.Black, 1.2F, true);
//画线
g.DrawLine(Sp, 40, 40, 40, 380);
//写字
g.DrawString("写字", Tfont, brush, 10, 15);

img.Save(strpath, ImageFormat.Jpeg);
img.Dispose();
g.Dispose();
zhangjingyi1581101 2011-08-30
  • 打赏
  • 举报
回复
求代码!!
基于C#的波形显示控件的实现源码 计算机技术的飞速发展使得其在自动化系统的应用日益增强。大量监控、图像数据显示软件活跃在自动化工业及自动化教学领域。同时,软件系统的日益复杂化使得模块化开发变得尤为重要。本课题所设计的基于C#的波形显示控件就可在微软.NET平台下进行代码功能重用,达到模块化开发和快速开发的目的,使得程序员能够集精力设计软件的具体业务流程,而不必担心波形呈现的问题。 本文先介绍了.NET平台下用户控件开发的基本方法,以及用C#描述的GDI+图形开发技术,然后提出一种基于C#的波形显示控件的设计思路,并对波形坐标值转换、坐标标尺、工具栏、局部放大等具体的设计细节进行详细解析。 本课题设计的波形显示控件实现了同时显示多条数据曲线、局部放大查看、波形显示自动调整最佳坐标范围、动态显示波形等功能。创新之处在于设计了一种方法,使得波形显示控件的坐标的起点值和终点值能够以浮点数显示,并自动根据当前波形显示控件的大小,描绘出符合用户视觉的坐标标尺。 波形显示控件实现的功能 (1) 多条波形数据的显示。 该波形显示控件能够同时显示多条波形数据,用户能够控制每条波形数据的显示颜色、线宽、线帽、以及线转折的样式。并且提供了三种波形数据显示的方式:连续数据线、离散点、条形图。 (2) 友好坐标标尺的显示。 该波形显示控件能够根据当前显示数据的坐标范围,友好地显示坐标标尺。例如X轴坐标起始值为34.2,结束坐标值为100.7,则控件不是简单得将坐标10等分并显示并不友好的坐标值,而是通过计算当前波形显示控件的大小,显示40、50……这样的友好的坐标值,并判断是否需要继续在40到50的坐标值之间显示更小分度的坐标值。 (3) 波形显示区域网格的显示。 该波形显示控件可以显示同坐标标尺的坐标线相对应的网格,使得用户能够更直观地观察波形数据。 (4) 波形的局部放大。 该波形显示控件提供了波形局部放大的功能。并根据实际使用和测试,控制了波形放大的精度,以免产生数据溢出的问题。 (5) 坐标自动调整。 该波形显示控件能够根据当前要显示的波形数据的值,自动选择最佳的坐标范围,来直观地在控件的波形显示区域显示完整的波形曲线。 (6) 外观颜色方案的修改。 该波形显示控件能够修改外观样式,诸如背景色、网格颜色、坐标线颜色、坐标值颜色等都可以进行调整,以使控件外观能够符合软件整体风格。 (7) 其他细节。 该波形显示控件还设计了一个工具栏,可以方面地使用网格显示、局部放大、坐标自动调整、恢复默认坐标功能。另外还设计右键菜单,能够显示当前鼠标位置的具体坐标值,以及工具栏按钮的快捷按钮。
第2章 图形基础 34 2.1 笔和刷 34 2.1.1 pen 类 34 2.1.2 brush 类 35 2.2 基本图形形状 37 2.2.1 点 37 2.2.2 直线和曲线 37 2.2.3 矩形、椭圆形和圆弧形 40 2.2.4 多边形 42 2.3 颜色 44 2.4 双倍缓存 66 第3章 坐标系统和颜色变换 69 3.1 坐标系统 69 3.2 颜色变换 77 第二部分 二维图形的基本算法 第4章 二维矩阵和变换 82 4.1 矩阵基础和变换 82 4.2 齐次坐标 82 4.2.1 齐次坐标的缩放 83 4.2.2 齐次坐标的平移 83 4.2.3 齐次坐标的旋转 84 4.2.4 变换组合 85 4.2.5 c#矩阵的定义 86 4 .2.6 c#的矩阵操作 87 4.2.7 c#基本的矩阵变换 89 4.3 c#图形对象的变换 93 基本变换 93 4.4 c#的多对象变换 101 4.5 文字变换 105 第5章 二维线形图形 109 5.1 序列化和反序列化及二维图形的基本框架 109 5.1.1 c#序列化和反序列化 110 5.1.2 二维图形的基本框架 113 5.2 二维图形 248 5.2.1 简单实例 248 5.2.2 图例 278 5.2.3 符号 289 5.2.4 对数比例 302 5.2.5 图形的修饰 308 5.3 阶梯状图 316 5.4 多y轴图 318 第6章 特殊二维图形 327 6.1 创建柱状图 327 6.1.1 水平柱状图 327 6.1.2 垂直柱状图 343 6.1.3 图形充填柱状图 344 6.1.4 重叠柱状图 346 6.2 饼状图 348 6.3 误差图 361 6.4 股票图 367 6.4.1 最高最低收盘价股票图 368 6.4.2 最高最低开盘收盘价股票图 369 6.4.3 最高最低价股票图 377 6.4.4 k 线图(阴阳烛图) 380 6.5 面积图 389 6.6 综合图 390 第三部分 三维图形的相关知识及三维图形的实现 第7章 三维矩阵和变换 396 7.1 三维数学概念 396 7.1.1 操作三维对象 396 7.1.2 数学结构 397 7.2 三维的基本矩阵和变换 402 7.2.1 c#三维点和矩阵的操作 403 7.2.2 三维的基本变换 405 7.3 方位角和仰角 434 7.4 三维图形的特殊坐标系统 439 7.4.1 球坐标系统 440 7.4.2 圆柱坐标系统 443 7.5 特殊坐标的实际应用 447 7.5.1 球坐标示例 447 7.5.2 双缓存 463 第8章 三维图形 473 8.1 三维图形基础 473 8.1.1 point3和matrix3类 473 8.1.2 chartstyle类 476 8.1.3 坐标 496 8.1.4 网格线 496 8.1.5 标签 497 8.2 三维折线图 503 8.3 三维图形函数包 508 8.3.1 chartstyle2d类 509 8.3.2 point4类 515 8.3.3 dataseries类 516 8.3.4 chartfunctions类 521 8.3.5 drawchart类 526 8.4 曲面图的实现 541 8.4.1 网格图 541 8.4.2 幕布网格图 548 8.4.3 瀑布网格图 551 8.4.4 曲面图 553 8.5 x-y平面色彩图 559 8.6 轮廓图 564 8.6.1 轮廓图的算法 564 8.6.2 轮廓图的实现 564 8.7 组合图 569 8.7.1 三维体系的x-y色彩图 570 8.7.2 三维体系的轮廓图 571 8.7.3 网格-轮廓组合图 575 8.7.4 曲面-轮廓组合图 576 8.7.5 填充曲面-轮廓组合图 576 8.8 三维柱状图 577 实现柱状图 577 8.9 切片图 591 切片图的实现 591 第四部分 c#应用微软office的excel实现各种二维及三维图形 第9章 应用程序的excel图表 600 9.1 excel和c#间的互操作 600 9.2 c#应用程序的excel图表示例 602 9.2.1 excel图表对象模型 602 9.2.2 创建独立的excel图表 604 9.2.3 创建嵌入式excel图表 607 9.3 更多的excel图表 608 9.3.1 柱状图 608 9.3.2 饼状图 611 9.3.3 面积图 613 9.3.4 圆环图 615 9.3.5 雷达图 615 9.3.6 股价图 617 9.3.7 曲面图 619 9.3.8 颜色映射 622 9.4 整合excel图表到windows forms应用程序 627 9.4.1 windows窗体上的独立excel图表 627 9.4.2 windows窗体上的嵌入式excel图表 631 第五部分 实现文件的相关知识 第10章 文件的读/写 634 10.1 c#文件读/写常用类 634 10.1.1 system.io.file类和system.io.fileinfo类 634 10.1.2 system.io.directory类和system.directoryinfo类 637 10.2 c#基于流的输入/输出 639 流的继承结构 640 10.3 文件读/写操作涉及的类 643 10.4 一些常见的问题及其解决 方案 643

110,571

社区成员

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

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

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