matlab 矩阵3d显示,Matlab 3D视图矩阵

让A是MATLAB的4×4视图矩阵,从视图函数获得:

A = view;

A(1:3,1:3)应对应于旋转和缩放,

A(1:3,4)应对应翻译,

A(4,:)应该是[0 0 0 1].

将相机参数设置为以下简单场景时:

camproj('orthographic')

set(gca, 'CameraPosition', [0,0,0])

set(gca, 'CameraTarget', [0,0,1])

set(gca, 'CameraUpVector', [0,1,1])

我得到A =视图是:

-1 0 0 0.5

0 1 0 -0.5

0 0 1 -0.5

0 0 0 1

现在我无法确定我们的0.5来自哪里.请注意,我将相机位置设置为[0,0,0],所以应该没有翻译.

另一个特点,将相机位置设置为[0,0,10]:

set(gca, 'CameraPosition', [0,0,10])

导致A:=视图矩阵成为

1 0 0 -0.5

0 1 0 -0.5

0 0 -1 5.5

0 0 0 1

所以我注意到A(3,4)中的-0.5已经变成了5.5,而这与5 = 10/2有关.

也就是说,将相机位置更改为[0,0,a]将A(3,4)处的视图矩阵大致为/ 2.

这是…奇怪?奇特?奇?

更新:

另一个优点是,A(1:3,1:3)的决定因素是-1,但是对于旋转矩阵,它应该是1.当它为-1时,这意味着它不仅是旋转,而且是反射.为什么我们需要反思?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值