MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   【讨论】进来测试一下你的眼力 (https://www.labfans.com/bbs/showthread.php?t=1578)

tolabfans 2008-03-06 19:01

【讨论】进来测试一下你的眼力
 
2 个附件
如图,将正立方体旋转,使对角线垂直向上,应该旋转多少度呢。
我用魔方比着试了下,好像是先沿X轴转45度,再沿y轴转30度。(Z轴垂直,XY平面水平)
可是测试了一下,不对。谁的眼力好,算算应该转多少度才对。

dnping 2008-03-07 12:14

楼主差不多已经解决了,在x-y平面内旋转45度,使对角线所在的平面转到x-z平面或者y-z平面中,然后在x-z (y-z)中将对角线绕原点旋转arccos(1/sqrt(3))度,就可以将对角线弄到z轴上去。

解毕。

tolabfans 2008-03-08 15:24

[QUOTE=dnping;6341]楼主差不多已经解决了,在x-y平面内旋转45度,使对角线所在的平面转到x-z平面或者y-z平面中,然后在x-z (y-z)中将对角线绕原点旋转arccos(1/sqrt(3))度,就可以将对角线弄到z轴上去。

解毕。...[/QUOTE]
版主暴强。佩服。我是把绕轴旋转和绕原点旋转搞混淆了。怪不得差一点点。
继续请教,绕原点旋转的转换矩阵是什么啊,arccos(1/sqrt(3))度,这个度数是怎么出来的。算出来的,还是有公式?

siman 2008-03-09 01:25

其实这个题目很简单阿,假设边长是1,平面的对角线就是sqart(2),总对角线是sqart(3),这三条边组成了立方体的对角面中的直角三角形,这里不方便画出来,但是我相信你可以理解吧??而你所求的角度刚好就是边长为sqart(2)所对应的角度,因为你说的垂直刚好使得w'轴与原来的x轴(按一般定义的x,y,z轴的画法)平行,这样w'与w间的角度就等于之前所提到的角度,而之前提到的哪个角度是arcsin(sqart(2)/sqart(3)),也就是2楼求出来的arccos(1/sqart(3))

dnping 2008-03-09 08:18

就是cos(theta)=1/sqrt(3);这里那些字符和希腊字母不好表示,就用字母或者matlab命令算符完成了,然后求角度的话就是求theta的反余弦,matlab有现成的命令,你可以去查查……

对于theta的求法,3楼已经说的很清楚了:
就是相当于你将z轴方向当作你一条边的方向,就是图中的垂直方向那条边,而我要处理的那个对角线所在的那个平面就是在z轴上的那条边与上下底面的对角线组成的一个平面,而立方体的一条对角线就是这个平面的对角线,可以理解吧?你的解法中先旋转45度,你是直接用对角线旋转的,尝试用这条对角线所在的对角平面来旋转试试看……

而那个角度,就是对角线和垂直的那条边之间的夹角,算出来没问题吧?

tolabfans 2008-03-09 11:24

看来光凭眼睛看不行啊
 
:tongue: 深有收获

danlei0120 2008-03-26 16:55

学习
 
很精彩,好帖就是要顶。

tiger 2008-05-28 21:32

学习了!:tongue: :smile:


所有时间均为北京时间。现在的时间是 06:31

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.