• 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



    ----==== Email: slofslb (GTD) qq.com 请将(GTD)换成@ ====----
    版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
    作者:申龙斌的程序人生

    ---- 魔方桥牌象棋、游戏人生...
    ---- BASIC、C++、JAVA、C#HaskellObjective-COpen Inventor、程序人生...
    ---- GTD伴我实现人生目标
    ---- 区块链生存训练
    ---- 用欧拉计划学Rust编程
    ---- 申龙斌的读书笔记(2011-2019)
    ----
  • 相关阅读:
    Linux运维之监控CPU和内存的日志工具
    Linux磁盘缓存的有趣实验
    Linux运维之内存分析2
    Linux运维之内存分析
    使用kubectl create 和 kubectl apply创建资源对象的区别
    Docker学习:Image的本地存储结构
    Docker 空间使用分析与清理
    HeidiSQL、Navicat、mysql命令和source命令导入sql脚本的速度比较
    Centos 7.2天兔(Lepus 3.8)数据库监控系统部署
    MegaCli 监控raid状态
  • 原文地址:https://www.cnblogs.com/speeding/p/2360789.html
Copyright © 2020-2023  润新知