C#中的坐标系统

3
我正在尝试使用C#创建一个带有一些特性的坐标系。 我以前没有使用过C#,但认为它应该与其他语言类似。
我不确定哪个元素适合这个目的(Panel、PictureBox等)。
要求如下:
  • 我想放大和缩小
  • 向左/右/下/上移动
  • 我从微控制器获取值,并希望实时绘制它们
我正在使用Visual Studio 2012。 我不想使用其他人的dll/libraries或程序。
谢谢!
附注:也许一个简单的教程也很好。

你是在考虑2D图形还是3D图形? - Kasyx
只需要2D,不需要3D :) - user2261524
1个回答

3

我用WPF中简单的Canvas做了同样的事情。因此,我建议您将平台改为WPF。可以使用ScaleTransform实现缩放行为,并且可以使用TranslateTransform来进行左/右移动等操作。无需任何库,您可以在wpf中使用几何类型,例如Path。并将每个path的RenderTransform属性设置为这些变换函数。


为什么选择WPF?与Windows窗体相比有哪些优势? - user2261524
@user2261524 基于向量的渲染。支持缩放/平移变换。支持数据类型,如“Point”、“Path”、“PathGeometry”、“StreamGeometry”。支持动画,因此您可以构建交互式地图等。 - Hossein Narimani Rad
所以你使用了一个Canvas并在那里绘制了坐标轴? - user2261524
@user2261524 是的。我正在使用一个Canvas并在上面绘制多边形、线条甚至图像。但是我还没有添加坐标轴,因为我不需要它,不过这是可能的。 - Hossein Narimani Rad
有没有办法可以扩展我的坐标轴?我的意思是,如果我画一个X轴(表示时间)从0到100,如果我得到超过100的值,是否可以将其扩展到任何值? - user2261524
@user2261524,在每次移动事件后,您可以刷新“Canvas”。因此,在每次移动事件后,您应该绘制两条线。此外,如果您的范围不太大,您可以绘制两条长线,覆盖您想要作为轴的区域。 - Hossein Narimani Rad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接