使用Coin3D VS2010 Qt 5.3.1构建三维图形开发环境



http://blog.sina.com.cn/s/blog_3fd731da0102v4df.html

oin3D VS2010 Qt 5.3.1构建方便的三维图形开发环境




【1】请使用baidu或者google搜索并下载各个软件包


VS 2010


Qt 5.3.1               qt-opensource-windows-x86-msvc2010_opengl-5.3.1.exe


Qt Addin 1.2.3       qt-vs-addin-1.2.3-opensource.exe


Coin3D 3.1.3       Coin-3.1.3-QT5.1.1-VS2010




【2】安装软件包


安装顺序:VS2010 》 Qt 5.3.1 》 QtAddin 1.2.3 》 Coin3D 3.1.3




除Vs2010外,其他软件最好统一安装到自定义的路径中,便于后面学习或者开发时的操作,如统一安装到C:\Develop\Qt531、C:\Develop\QtAddin123、C:\Develop\Coin3D313等。




【3】配置Qt开发环境


安装软件包后,打开 VS2010 后,单击 Qt5 > Launch Designer 时,如果提示没有设置Qt版本,则可以依次操作 Qt5 > Qt Options > Qt Versions > Add > 单击 Path 后的   ... > 在对话框中找到Qt安装路径C:\Develop\Qt531\5.3\msvc2010_opengl —— 注意,不要添加bin,否则提示无法找到qmake.exe !




【4】配置Coin3D开发环境


由于在VS2010中的环境配置只对当前工程有效,而我们的Coin3D则需要在每个工程中进行配置。




按照以下操作来使VS2010能够实现“一次性配置”:


首先,任意创建一个任意类型的工程项目,如名字为adadad。用鼠标点击vs工作区   左侧   解决方案资源管理器 中的 项目名字adadad ——




1、执行菜单栏“视图—属性管理器”;




2、点击adadad项目名字前的三角符号,双击Debug | Win32下的“Microsoft.Cpp.Win32.user“,在弹出的配置框中配置所需环境;




3、这个设置是对所有工程有效的。你可以打开其他的工程或者新建新的工程,可以看到都继承了此配置。




然后,我们在当前这个工程中配置Coin3D的开发环境(这里的配置同样会直接在我们后面创建的开发工程中应用到):




视图 》 属性管理器 》 单击 adadad 项目名字前的三角符号 》 Debug | Win32 》双击 


Microsoft.Cpp.Win32.user 》 




                          VC++目录     》可执行文件目录 》 添加 C:\Develop\Coin3D313\bin;C:\Develop\Qt531\5.3\msvc2010_opengl\bin;


                          》包含目录 》 添加   C:\Develop\Coin3D313\include;C:\Develop\Qt531\5.3\msvc2010_opengl\include;


                          》库目录 》 添加   C:\Develop\Coin3D313\lib;C:\Develop\Qt531\5.3\msvc2010_opengl\lib;




                    C/C++ 》预处理器 》定义》添加 SOQT_DLL;COIN_DLL;SOWIN_DLL


                                  代码生成 》运行库 》 多线程调试 DLL (/MDd)




                            链接器 》输入 》添加 coin3d.lib;soqt1d.lib;sowin1d.lib;




最后,点击 确定退出对话框(为了确保上述值的正确性,请再次打开这个对话框核对下,尤其是要确保上述安装路径务必要与你自己的真实安装路径一致)。


提示:注意上述路径中英文分号 ; 的用法!!




【5】测试开发环境


新建一个工程项目,或者清空当前工程项目中的main.cpp文件,然后直接粘贴以下代码——




#include   这些显示不出来,见楼下评论部分的内容
#include

#include
#include
#include
#include




int main(int argc, char *argv[])


{


QWidget *myW = SoQt::init("");


SoQtExaminerViewer *viewer = new SoQtExaminerViewer(myW);




SoSeparator *root = new SoSeparator;


SoCone *cone = new SoCone;


root->ref();




root->addChild(cone);




viewer->setSceneGraph(root);


viewer->show();




SoQt::mainLoop();


delete viewer;


}




按下F5运行工程,此时应该会提示   无法启动此程序,因为计算机中丢失……    




将 C:\Develop\Coin3D313\bin 目录下的soqt1d.dll coin3d.dll (或者你连同 soqt1.dll coin3.dll一起)拷贝到自己的工程目录下,再次点击就可以运行了。


暂时还 不清楚如何通过设置项目属性的方法来自动包含这些文件包,很奇怪,而不是复制到工程当中来。




解决这个问题的麻烦通知我一下,谢谢。




运行效果:


使用Coin3D <wbr>VS2010 <wbr>Qt <wbr>5.3.1构建三维图形开发环境




修改以下代码:





SoSeparator *pTriSep = new SoSeparator;
r->addChild(pTriSep);

SoTranslation *ts = new SoTranslation;
ts->translation.setValue(3.50f,4.60f,3.60f);
pTriSep->addChild(ts);

SoMaterialBinding *tmb = new SoMaterialBinding;
tmb->value = SoMaterialBinding::PER_VERTEX;
pTriSep->addChild(tmb);

//设置三角形颜色
const float triColors[][3] = {
{ 1.0f, 0.0f, 0.0f}, { 0.0f,1.0f,0.0f}, { 0.0f,0.0f,1.0f},
{ 1.0f, 0.0f, 0.0f}, { 0.0f,0.0f,1.0f}, { 0.0f,1.0f,0.0f},
{ 1.0f, 0.0f, 0.0f}, { 0.0f,1.0f,0.0f}, { 0.0f,0.0f,1.0f},
{ 1.0f,0.0f,0.0f}, { 0.0f,0.0f,1.0f},{ 0.0f,1.0f,0.0f}
};

SoMaterial *tmat = new SoMaterial;
tmat->diffuseColor.setValues(0, 12, triColors);
pTriSep->addChild(tmat);

// 画三角形
float tVer[][3] = {
{0.0f, 0.0f, 0.0f}, //vertex 1
{0.0f, 1.0f, 0.0f}, //vertex 2
{1.0f, 0.0f, 0.0f}, //vertex 3
{1.5f, 1.0f, 0.0f}
};

SoCoordinate3 *tco = new SoCoordinate3;
tco->point.setValues(0, 12, tVer);
pTriSep->addChild(tco);

SoFaceSet *pFaceSet = new SoFaceSet;
pTriSep->addChild(pFaceSet);

v->viewAll();




效果应该是这样的


使用Coin3D <wbr>VS2010 <wbr>Qt <wbr>5.3.1构建三维图形开发环境


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值