坐标系转换问题……急急急!!!

usxue 2003-04-21 11:56:27
我想在窗体上画一个图形,但是系统的坐标系是x右正,y下正,
我现在要在某一点比如:(100,600)这点为原点,并且x右为正,y上为正,
怎么转换啊??
TransformPoints,RotateTransform也不行啊,
急急!!!
谢谢!!!
...全文
129 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
banping 2003-04-28
  • 打赏
  • 举报
回复
可以呀!
这是通过坐标重新画的
usxue 2003-04-24
  • 打赏
  • 举报
回复
汉字行吗?
有没有变成倒的了啊?
banping 2003-04-22
  • 打赏
  • 举报
回复
人为计算出公式呀!计算出原来的坐标系中每点与转换后的坐标系中的每个点!
xp:有图上的坐标系的坐标!(graph)
yp:
xr;真实坐标系的坐标!(real)
yr;

xp=(xr+xd)scale;
yp=-(yr+yd)scale;
xd=-(xov-(wp/2)/scale);
yd=-(yov+(hp/2)/scale);

scale:放大缩小比例!
xov:view plane的中心点x坐标
yov:
wp:graph宽度
hp:高度!

此公式调试通过,没有任何问题!
含义表示:在一个真实坐标系中的任意一为中心(xov,yov)将wp*scale,hp*scale范围显示在graph上!
费了不少脑细胞!
banping 2003-04-22
  • 打赏
  • 举报
回复
简单呀!让我想想!给个公式给你吧!
cheng_young 2003-04-22
  • 打赏
  • 举报
回复
还原用ResetTransform就行了
但坐标值就不一致了, 这样凑合着用吧, :-)
float x=50.0f, y=50.0f;
g.ResetTransform();
g.TranslateTransform(0, ClientSize.Height-2*y);
g.DrawString("hello", Font, new SolidBrush(ForeColor), x, y);
usxue 2003-04-22
  • 打赏
  • 举报
回复
是3*3矩阵吗?不是3*2啊?
图形转换成:
g.Transform = new Matrix(1.0f, 0.0f, 0.0f, -1.0f, 100.0f, 600.0f);
怎么再把他还原成原来没有转换的呢?
谢谢!!!
急急急!!!
顾君彦 2003-04-21
  • 打赏
  • 举报
回复
(x,窗体高度-y)

试试看
aspcn 2003-04-21
  • 打赏
  • 举报
回复
GDI+中的矩阵是3*3矩阵,Transform会将整个用户区每一个点都进行计算,当然一转动就会变了啊.

如果不想一个个的点重新计算,那你就把图和文字分开来画吧.
usxue 2003-04-21
  • 打赏
  • 举报
回复
真的没人回答呢??
急啊!
usxue 2003-04-21
  • 打赏
  • 举报
回复
明天再来!
usxue 2003-04-21
  • 打赏
  • 举报
回复
1000可用分+100专家分解决这个问题:
谢谢!!!
急!!!
zag 2003-04-21
  • 打赏
  • 举报
回复
gz
usxue 2003-04-21
  • 打赏
  • 举报
回复
真的没人回答啊??
usxue 2003-04-21
  • 打赏
  • 举报
回复
轴转是转好了,
但是字体是倒的,怎么办??
我这样转的:
Graphics g = this.CreateGraphics();
g.Transform = new Matrix(1.0f, 0.0f, 0.0f, -1.0f, 100.0f, 600.0f);

字怎么改啊??变成倒的了!
急急急啊!
谢谢!
usxue 2003-04-21
  • 打赏
  • 举报
回复
还是不行啊,
怎么办啊?
帮帮忙啊!
很急的啊!
谢谢!
cheng_young 2003-04-21
  • 打赏
  • 举报
回复
Graphics g = e.Graphics;
g.Transform = new Matrix(1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f);
g.TranslateTransform(0, -ClientSize.Height);
Pen pen = new Pen(ForeColor);
g.DrawLine(pen, 0, 0, 100, 600);
shmily_nnx 2003-04-21
  • 打赏
  • 举报
回复
Graphics对象里有平移坐标的,自己看看吧,我现在在装VSNET慢呐:)
zhaoao 2003-04-21
  • 打赏
  • 举报
回复
gz
SmallCase 2003-04-21
  • 打赏
  • 举报
回复
up

111,098

社区成员

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

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

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