|
楼主 |
发表于 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).
---------------
这里写错了,“乘以变换矩阵”,应该是“乘以变换矩阵的逆矩阵” |
|