自由シミュレーション、ロボットアーム6のマルチ度

完全なシミュレーション昇降プロセス、初期状態 - >から腕 - >ダウンスリング - >垂直リフティング - >水平回転 - >オブジェクトを下げる - >収縮スリング。

OSG :: ref_ptr <OSG ::ノード> createSimple()
{ 
    OSG :: ref_ptr <OSG ::のGeode>ジオード= 新しいOSG ::のGeode。
    OSG :: ref_ptr <OSG ::幾何学>地理= 新しいOSG ::ジオメトリ。

    // 申请一些顶点 
    OSG :: ref_ptr <OSG :: Vec3Array> VERS = 新しいOSG :: Vec3Array。
    地理 - > setVertexArray(VERS。取得());
#ifの 1個の
    GEO - > addPrimitiveSet(新しい OSG :: DrawArrays(OSG :: PrimitiveSet :: LINE_LOOP、04))。// 创建一个线圈
の#else 
    地理 - > addPrimitiveSet(:: DrawArrays OSG(OSGは:: ::プリミティブをクワッド- 、04。 )); // 作成正方形
#endifの


                                                                              // 設けられた頂点 
    のVers>一back(OSG :: Vec3( - 153.0、 - 15 ))。
    VERS - >一back(OSG :: Vec3(153.0、 - 15 )); 
    VERS - >一back(OSG :: Vec3(153.015 )); 
    VERS - >一back(OSG :: Vec3( - 153.015 )); 

    // アプリケーション色
    OSG :: ref_ptr <OSG :: Vec4Array>色= 新しいOSG :: Vec4Array()。 - >一back(OSG :: Vec4(1.00.00.00.5 ))。 - >一back(OSG :: Vec4(0.01.00.00.5 ))。 - >一back(OSG :: Vec4(0.00.01.00.5 ))。 - >一back(OSG :: Vec4(1.01.00.00.5 ))。

    //色を設定 
    ジオ> setColorArray(色は。GET ()); 
    GEO - > setColorBinding(OSG幾何学:: :: :: BIND_PER_VERTEXをAttributeBinding); // 色のバインド設定

                                                                           // 明るい画面当分の間、通常の設定を 
    :: ref_ptr OSG <OSG :: Vec3Arrayがある> NORM = 新しい新しいOSG Vec3Arrayが::で、
    GEO - > setNormalArray(NORM); 
    GEO - > setNormalBinding(OSG AttributeBinding :: :: :: BIND_OVERALLジオメトリ); 
    NORM - >一back(OSG: :Vec3(0.0 - 1.00.0 )); 

    // オープン透明 
    ジオ> getOrCreateStateSet() - > SETMODE(GL_BLEND、OSG :: ::がstateAttribute ON); 

    //设置线宽 
    OSG :: ref_ptr <OSG ::のLineWidth> =ワット新しいOSG ::のLineWidth。
    W - >にsetWidth(5.0 )。
    地理 - > getOrCreateStateSet() - > setAttributeAndModes(ワット得る;()、OSG ::がstateAttribute :: ON)

    ジオード - > addDrawable(GEO 取得()); 

    リターンジオード。
} 

//代码参考ます。https://blog.csdn.net/wb175208/article/details/80513775

 

おすすめ

転載: www.cnblogs.com/herd/p/11420574.html