osg绘制粗线条

osg绘制粗线条

 

#include <osg/Geometry>
#include <osg/Geode>
#include <osgViewer/Viewer>
#include <osg/LineWidth>

int main()
{
    // 创建几何体对象
    osg::ref_ptr<osg::Geometry> lineGeom = new osg::Geometry();

    // 创建顶点数组
    osg::ref_ptr<osg::Vec3Array> vertices = new osg::Vec3Array;
    vertices->push_back(osg::Vec3(0, 0, 0)); // 起点
    vertices->push_back(osg::Vec3(1, 0, 0)); // 终点

    // 设置线条宽度为5个像素单位
    osg::ref_ptr<osg::LineWidth> lineWidth = new osg::LineWidth();
    lineWidth->setWidth(5.0f); // 设置线条粗细为5个像素单位
    lineGeom->getOrCreateStateSet()->setAttributeAndModes(lineWidth, osg::StateAttribute::ON);

    // 将顶点数组添加到几何体中
    lineGeom->setVertexArray(vertices);

    // 创建几何体组对象,并将几何体添加到组中
    osg::ref_ptr<osg::Geode> geode = new osg::Geode();
    geode->addDrawable(lineGeom);

    // 创建视图器并显示场景图
    osgViewer::Viewer viewer;
    viewer.setSceneData(geode);
    viewer.run();

    return 0;
}

 

 

============

posted @ 2024-01-23 20:58  西北逍遥  阅读(91)  评论(0编辑  收藏  举报