• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
lizhengjin
博客园    首页    新随笔    联系   管理    订阅  订阅
vtk 矩阵管理系统

 vtkTransform* form = vtkTransform::New();
  form->Identity();//单位化
 
  form->RotateZ(45);
  
  sphere1->AddPosition(3.0, 0.0, 0.0);

  form->RotateZ(45);

  sphere1->SetUserTransform(form);

 

 

以上代码连续旋转两次45度,每次旋转都是沿着模型坐标系下,同时调整位置的函数都是最后生效。

究其原因,rotatez(45)生成一个沿着z轴旋转45度的矩阵,此矩阵表示原点为中心,(0, 0, 1)为轴的矩阵

同时addposition()生成的平移矩阵并不影响旋转矩阵,因此addposition()函数放的位置与最终结果无关。

即,以上代码等同于以下

 

 vtkTransform* form = vtkTransform::New();
  form->Identity();//单位化
 
  form->RotateZ(45);
  
 

  form->RotateZ(45);
 sphere1->AddPosition(3.0, 0.0, 0.0);
  sphere1->SetUserTransform(form);

 

 

 

 

posted on 2009-04-01 23:12  lizhengjin  阅读(552)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3