OpenInventor笔记:线性坐标轴PoLinearAxis的使用

在MeshViz模块里有许多坐标轴的类,PoLinearAxis类应该最有用,关键的语句是下面的构造函数:

PoLinearAxis ax = new PoLinearAxis(new SbVec3f(35.0f, 35.0f, 35.0f), 88.0f, 
                                   PoCartesianAxis.Types.XY, 10.0f);
 

第一个参数是起点的空间位置,SbVec3f类型;

第二个参数是终点的位置,但只是一个浮点数,含义是由后面的PoCartesianAxis.Types.XY参数决定的;

第三个参数是决定坐标轴在哪个平面上和指向的方向,XY是指在XY平面上,平行X方向;

第四个参数是刻度数字的间隔,这个参数是可选的,但省略时,刻度间隔是自动设置的。


_viewer =  new SoWinExaminerViewer(_parent, "Name", true, 
                SoWinFullViewer.BuildFlags.BUILD_ALL, SoWinViewer.Types.BROWSER);

PoDomain domain = new PoDomain();
domain.min.SetValue(0, 0, 0);
domain.max.SetValue(100, 100, 100);

PoMiscTextAttr textAttr = new PoMiscTextAttr() ;
textAttr.fontName.SetValue("Courier New");

// 画一个长方体的框子,可以清楚地看到坐标轴的位置和方向
PoAutoCubeAxis autoCubeAxis = new PoAutoCubeAxis(new SbVec3f(0,0,0), new SbVec3f(100,100,100),
             PoAutoCubeAxis.AxisTypes.LINEAR,
             PoAutoCubeAxis.AxisTypes.LINEAR,
             PoAutoCubeAxis.AxisTypes.LINEAR,
              "X", "Y", "Z") ;
autoCubeAxis.Set("backgroundFaceApp.material", "diffuseColor 0.5 0 0") ;
autoCubeAxis.isBackgroundFacesVisible.SetValue(true) ;

_root = new SoSeparator() ;
_root.AddChild(domain);
_root.AddChild(textAttr);
_root.AddChild(autoCubeAxis);

// 画一个线性坐标轴
PoLinearAxis ax = new PoLinearAxis(new SbVec3f(35.0f, 35.0f, 35.0f), 88.0f, 
                                   PoCartesianAxis.Types.XY, 10.0f);

_root.AddChild(ax);

_viewer.SetSceneGraph(_root);
_viewer.ViewAll();

 

image

换成YX平面时,坐标轴仍在XY平面上,但平行Y轴。

image

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值