Coin3D三维可视化教程8
基于windows的coin3d窗口
从SoQt到SoWin
好久没摸coin3d了,最近想继续学学。之前的例子都是用SoQt平台下做的,很适合通过widget组件和已有Qt代码组成大的软件系统,但如果仅仅为了学习,不想很麻烦的配置qt,采用SoWin更容易些,这里展示一个用SoWin而非SoQt的简单例子。具体代码如下
#include <iostream>
#include <Inventor/Win/SoWin.h>
#include <Inventor/Win/viewers/SoWinExaminerViewer.h>
#include <Inventor/nodes/SoCube.h>
#include <Inventor/nodes/SoDirectionalLight.h>
#include <Inventor/nodes/SoMaterial.h>
#include <Inventor/nodes/SoPerspectiveCamera.h>
#include <Inventor/nodes/SoSeparator.h>
int main(int argc, char* argv[])
{
std::cout << "Hello World!\n";
HWND myWindow = SoWin::init(argv[0]);
if (myWindow == NULL)exit(1);
SoSeparator* root = new SoSeparator;
root->ref();
SoMaterial* myMaterial = new SoMaterial;
myMaterial->diffuseColor.setValue(1, 0, 0);
root->addChild(myMaterial);
root->addChild(new SoCube);
SoWinExaminerViewer* myViewer = new SoWinExaminerViewer(myWindow);
myViewer->setSceneGraph(root);
myViewer->setTitle("Examiner Viewer");
myViewer->show();
SoWin::show(myWindow);
SoWin::mainLoop();
return 0;
}
效果如下
对比之前的教程2可以看出,改动很少
https://blog.csdn.net/yanfeng1022/article/details/105908803
QWidget* myWindow = SoQt::init(argv[0]);
改为
HWND myWindow = SoWin::init(argv[0]);
最后的
SoQt::show(myWindow); //Display main window
SoQt::mainLoop(); //Main Inventor event loop
改为
SoWin::show(myWindow);
SoWin::mainLoop();
基本是一目了然。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具