osg绘制圆柱体

osg绘制圆柱体

 

#include <iostream>
#include <osgViewer/Viewer>
#include <osg/Node>

//#include <osgDB/ReadFile>
//#include <osgDB/WriteFile>

#include <osgUtil\Optimizer>
#include <osg/Geode>
#include <osg/Group>
#include <osg/ShapeDrawable>

//绘制几何体
osg::Geode* createShpe()
{
    //
    osg::Geode *geode = new osg::Geode();
    //半径
    float radius = 0.8f;
    //高度
    float height = 1.8f;

    //精细度
    osg::TessellationHints* hints1 = new osg::TessellationHints();
    //设置精细度
    hints1->setDetailRatio(0.8f);

    //创建圆柱体
    osg::Cylinder *cylinder = new osg::Cylinder(osg::Vec3(0.0f, 0.0f, 0.0f), radius, height);
    osg::ShapeDrawable *draw1 = new osg::ShapeDrawable(cylinder, hints1);

    geode->addDrawable(draw1);

    return geode;
}


int main()
{
    osgViewer::Viewer *viewer1 = new osgViewer::Viewer();
    osg::Group *root = new osg::Group();

    root->addChild(createShpe());

    osgUtil::Optimizer optimizer1;
    optimizer1.optimize(root);

    viewer1->setUpViewInWindow(200, 200, 700, 500, 0);

    //viewer1->addEventHandler(new osgViewer::GraphicsWindow::resized(0,0,640,480));
    viewer1->setSceneData(root);

    //viewer1->realize();
    viewer1->run();
    return 0;
}

 

 

 

 

##################3

posted @ 2021-10-11 11:25  西北逍遥  阅读(374)  评论(0编辑  收藏  举报