几何尺寸与公差论坛

 找回密码
 注册
查看: 3219|回复: 1

【转帖】怎么用函数实现整个坐标系绕y轴旋转90度?

[复制链接]
发表于 2007-6-23 20:07:38 | 显示全部楼层 |阅读模式
怎么用函数实现整个坐标系绕y轴旋转90度?
Sinbad 16:11:09
可否详细一些,Occ里有专门的函数么?是什么样子?
BJ-Submarine 16:12:35

矩阵A = 矩阵B 叉乘 旋转矩阵。
 楼主| 发表于 2007-6-23 20:07:57 | 显示全部楼层

回复: 【转帖】怎么用函数实现整个坐标系绕y轴旋转90度?

Sinbad 16:16:33

我想把视角变一下,就是整个坐标系绕y轴旋转90度,原来物体的坐标不变。
Sinbad 16:20:19
不知道我说清楚了没有
BJ-Submarine 16:28:28


  这个,要在原来浏览的基础上,乘以一个旋转矩阵。应该在绘制前,获得坐标的转换的结果,再绘。
  我只知道原理。不知道具体怎么实现。我对occ不懂。
  
Sinbad 16:31:46
我知道你的意思,这样绘制物体的坐标值就变了,我是想通过函数得到其他视图.
感谢...
BJ-Submarine 17:03:25
可能不是我要说的意思。

我把原始的数据作为文档,程序界面作为视图。文档和视图表现的是同一个东西。不过,在视图里面可以旋转浏览,坐标绝对不能改变。

在视图上,客观存在一个坐标系统,是个平面的。我们看到的文档数据的视图,无非就是文档数据旋转投射到视图坐标系上面的结果。

无论何时,原始数据的浏览都是对原始数据的坐标投影到视图上的结果。不同的是,每次采用的旋转矩阵不同,这样,才可能旋转浏览而不修改原始数据。

无论何时,对坐标系以及数据的查询,都必须归结为对数据文档的查询,而不是程序界面视图的查询。无论视图怎么变换,文档数据的坐标是不变的。

如果直接浏览文档数据,文档数据的坐标直接表现到程序视图上,就是,(x0,y0)=f(x,y),f是一个完全没有产生变换效果的单位变换。
如果把f的公式写为:
   |cosr,sinr,1|
B=|sinr,cosr,1|
   |1,   1    1|
其中,r是变换角度。
产生的新的变换公式(x0,y0)=(x,y)*B.就是在数据发生R大小的变换的时候的对应视图坐标。
如果要对数据坐标进行查询,则需要先查出视图坐标(x1,y1),然后乘以变换矩阵,得到文档数据的坐标(x,y).
如果在您的处理中添加如上对应关系,应该能解决您所碰到的这方面的问题。
BJ-Submarine 17:05:10
以上的变换只考虑了二维,具体您需要的变换,查看计算机图形学的一些资料应该能解决问题。
BJ-Submarine 17:06:33
如果要对数据坐标进行查询,则需要先查出视图坐标(x1,y1),然后乘以变换矩阵,得到文档数据的坐标(x,y).
---------------
这里写错了,“乘以变换矩阵”,应该是“乘以变换矩阵的逆矩阵”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-31 01:50 , Processed in 0.035788 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表