【发布时间】:2015-07-22 01:20:16
【问题描述】:
我创建了简单的表格,现在我想在相对坐标中绘制单个对象(矩形、圆形、线条..)。 我这里的主要问题是在表格中间创建二维笛卡尔坐标系。有可能吗?怎么做??
主要问题是如何有效地将绝对坐标转换为相对坐标?如何创建自己的系统,以便获得数字(负数、正数,取决于象限)而不是像素的结果?
.
目前我用Cursor.Position.X、Cursor.Position.Y 制作了 MouseMove 事件来显示鼠标的当前位置,并将其显示在标签中。显示的坐标是像素,如何更改?我读过一些关于使用PointToClient 方法进行转换的内容,但我不太明白。
我被windows forms绑定了,因为我已经在win forms中做了一个程序,现在我只想给它添加这个功能。
谢谢
【问题讨论】:
-
您是否尝试过使用变量来偏移当前位置? IE。 var offsetX = control.Width/2; (请记住,您需要确定如何处理奇数尺寸)
-
这对我没有任何帮助...我设法创建了面板尺寸 1;1 并将其放在中间,然后我使用了
Point point = panel2.PointToClient(Cursor.Position); label1.Text = "Current coordinates: " + point.ToString();这是新奇且不太明确的解决方案我的问题,我想找到更好的解决方案
标签: c# winforms drawing cartesian-coordinates