QuantyView3D二次开发学习笔记

三维对象的创建

创建三维点

  • 涉及到的类

1.CGV3dLayer 图层类
可以划分成CGV-3d-Layer三段来记忆,重点是Layer
2.CGV3dPoint点类
emm,感觉都有前缀CGV3d

  • 涉及到的方法

1.GetDocument() -获取当前文件,返回一个IDocument类型的指针

2.GetCurrentLayer() -获取当前图层,放回一个CGV3dLayer的指针类型,指向当前图层,注意:这个方法是CGV3dProject类的一个方法,而貌似当前文件中有m_Project这个属性,类型正是CGV3dProject

3.PromptError(String)返回一个带有信息的错误提示对话框

4.CGV3dPoint的无参构造方法,创建一个三维点

CGV3dPoint* p=new CGV3dPoint;

5.SetPosition(float,float,float)设置三维点的位置,属于CGV3dPoint的方法

6.AddObject(三维对象)将创建好的三维对象添加进入当前图层,是CGV3dLayer的方法

//获取当前图层
CGV3dLayer*layer=GetDocument()->m_Project.GetCurrentLayer();
//判断当前图层是否为空
if(!layer)return PromptError("请设置当前图层");
//创建一个三维点
CGV3dPoint*p=new CGV3dPoint();
//设置三维点的坐标为默认坐标原点
p->SetPosition(0,0,0);
//将三维点加入当前图层
layer->AddObject(p);

结果如下:中间红色的小点就是我们创建的三维点

创建三维线

好了,我们已经学会了如何创建一个三维点,现在学习创建三维线,由于和创建三维点有很多相似的地方,所以重复的地方我们不再赘述,重点讲解新增的东西

  • 涉及到的类
    1.CGV3dPolyline三维线类
  • 涉及到的方法

1.三维线类的构造方法,创建一个三维线

2.AddTail(float,float,float)将点添加到构造线的工作中,由于两点成线,所以我们只需要添加两次就就可以了。
实例代码如下

//1.获取当前图层
CGV3dLayer*layer=GetDocument()->m_Project.GetCurrentLayer();
if(!layer)return PromptError("请设置当前图层");
//2.创建三维线
CGV3dPolyline*l1=new CGV3dPolyline;
l1->AddTail(0,0,0);
l1->AddTail(0,0,1);
//3.将三维线添加入当前图层中
layer->AddObject(l1);

结果如下:

创建三维面

  • 涉及到的类

1.CGV3dPolygon

  • 涉及到的方法

1.构造方法
2.AddTail 将构成面的点要素添加进去,CGV3dPolygon的方法
3.MakeDefaultPolygons();也是属于CGV3dPolygon的方法,不知道是什么作用,emm

	//1.获取当前图层
     CGV3dLayer*layer=GetDocument()->m_Project.GetCurrentLayer();
	 if(!layer)return PromptError("请设置当前图层");
	//2.创建三维面
	CGV3dPolygon*p1=new CGV3dPolygon;
	//三点确定一面
	p1->AddTail(0,0,0);
	p1->AddTail(0,1,0);
	p1->AddTail(1,0,0);
	p1->MakeDefaultPolygons();
	//3.将三维线添加到当前图层中去
	layer->AddObject(p1);

结果如下:

创建三维体

  • 涉及到的类
    1.CGV3dPolyhedron- 三维体类型
  • 涉及到的方法
    1.MakeDefaultPolyhedron()- 设置创建的三维体样式,参数设置为0的话为棱锥,1的话为愣住
    代码如下
//1.获取当前图层
     CGV3dLayer*layer=GetDocument()->m_Project.GetCurrentLayer();
	 if(!layer)return PromptError("请设置当前图层");
	//2.创建三维四面体
	CGV3dPolyhedron*p1=new CGV3dPolyhedron;
	//添加底面需要的点
	p1->AddTail(0,0,0);
	p1->AddTail(0,1,0);
	p1->AddTail(1,0,0);
	//添加顶面
	p1->AddTail(0,0,1);
	//设置默认体类型
	p1->MakeDefaultPolyhedron(0);
	//3.将三维体添加到当前图层中去
	layer->AddObject(p1);

posted @   噫~该死的碳酸饮料  阅读(7)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示