首页 新闻 会员 周边

坐标转换 c#

0
悬赏园豆:20 [已关闭问题] 关闭于 2010-01-18 16:52

在winform中画图,如何将默认的坐标改为咱们数学里的坐标呢 ?最好能写一下代码,我忘了是用哪个方法,查了一天也没整出来。谢谢大家

问题补充: 咱们在winform中画图的时候,简答说:默认情况下 画一个line(0,0,10,10),这个直线是在左上角吧,而现在呢,我想让这个直线绘制在左下角
Bruce Wan的主页 Bruce Wan | 初学一级 | 园豆:0
提问于:2010-01-12 13:36
< >
分享
所有回答(4)
0

写个方法来转换不就行了吗?

风浪 | 园豆:2996 (老鸟四级) | 2010-01-12 13:39
0

自己写方法吧,X轴不变,Y轴相反

如:

 

//窗口上的坐标原点
Point oriPoint = new Point(800 / 2, 600 / 2);
public Point PointTransform(Point point)
{
return new Point(point.X+oriPoint.X, oriPoint.Y- point.Y);
}

 

 

齐.net | 园豆:1421 (小虾三级) | 2010-01-12 14:13
我想在自定义控件上画图,以它的左下角为原点,x轴朝右,y轴朝上。但是默认的是左上角为原点,x朝右,y轴朝下。 上面的代码,我试过,但是没能转换过来。
支持(0) 反对(0) Bruce Wan | 园豆:0 (初学一级) | 2010-01-12 14:23
而且我这个是画图,不能每画一个图都进行一次转换呀,所以想把坐标轴给换过来。
支持(0) 反对(0) Bruce Wan | 园豆:0 (初学一级) | 2010-01-12 14:26
那就设置oriPoint 为你的自定义控件的左下角坐标吧。 我们不能设置窗体的系统,所以也只能在每次访问坐标的时候 进行转换。
支持(0) 反对(0) 齐.net | 园豆:1421 (小虾三级) | 2010-01-12 15:33
@齐.net:哦 , 我试着做一下,谢谢,学习了
支持(0) 反对(0) Bruce Wan | 园豆:0 (初学一级) | 2010-01-12 21:39
@齐.net:也就是说如果我100个图,那么我就要进行100次转换吗
支持(0) 反对(0) Bruce Wan | 园豆:0 (初学一级) | 2010-01-18 11:04
0

你需要在把每个点传给GDI+的时候用这个变换转一次。

地狱门神 | 园豆:240 (菜鸟二级) | 2010-01-12 15:15
那有点麻烦哟,我得画好多个图呢
支持(0) 反对(0) Bruce Wan | 园豆:0 (初学一级) | 2010-01-13 21:32
0

大家都不明白楼主的用意,他想设置一个类似IsFormY_UP=true;的东西就完了。根本没想自己封装一个转换函数。

风海迷沙 | 园豆:4453 (老鸟四级) | 2010-01-13 10:29
我把问题进行了补充,你给看看,有什么方法吗?
支持(0) 反对(0) Bruce Wan | 园豆:0 (初学一级) | 2010-01-13 21:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册