![]() |
【转帖】怎么用函数实现整个坐标系绕y轴旋转90度?
怎么用函数实现整个坐标系绕y轴旋转90度?
Sinbad 16:11:09 可否详细一些,Occ里有专门的函数么?是什么样子? BJ-Submarine 16:12:35 矩阵A = 矩阵B 叉乘 旋转矩阵。 |
回复: 【转帖】怎么用函数实现整个坐标系绕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). --------------- 这里写错了,“乘以变换矩阵”,应该是“乘以变换矩阵的逆矩阵” |
所有的时间均为北京时间。 现在的时间是 09:54 AM. |