news 2026/4/15 8:20:45

【三维建模】三维建模基础一

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【三维建模】三维建模基础一

本文涉及知识点

计算几何

效果图

各步骤及代码

长方体一

直接创建长方体。

SSolid1Param param=newSSolid1Param();Solid3d solid=newSolid3d();solid.CreateBox(param.m_XBottom1,param.m_YBottom1,param.m_ZBottom1);

减去长方体二


长方形向X方向拉伸60。

{//减去长方体Point3d pt=newPoint3d(-param.m_XBottom1/2,-param.m_YBottom2/2,-param.m_ZBottom1/2);Point3d[]pts=newPoint3d[4]{pt,pt,pt,pt};pts[1]=pts[1].Add(newVector3d(0,0,param.m_ZBottom2));pts[2]=pts[2].Add(newVector3d(0,param.m_YBottom2,param.m_ZBottom2));pts[3]=pts[3].Add(newVector3d(0,param.m_YBottom2,0));var pl=QinShiCad.RegionTools.CreateSimplePolyline3d(pts);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(pl,newVector3d(param.m_XBottom1,0,0),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid);}

减去圆柱一


圆柱向z方向拉伸18。

Point3d O1=newPoint3d(0,-param.m_YBottom1/2,-param.m_ZBottom1/2);{//减去圆柱Circle circle=newCircle(O1,Vector3d.ZAxis,param.m_r1);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(circle,newVector3d(0,0,param.m_ZBottom1),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid);}

大圆柱减小园柱


两个圆向y轴负方向拉伸。

Point3d O2=newPoint3d(O1.X,-O1.Y,O1.Z+param.m_disO1O2);Circle circle2=newCircle(O2,Vector3d.YAxis,param.m_r2);{Circle circle3=newCircle(O2,Vector3d.YAxis,param.m_r3);Solid3d extrudedSolid2=newSolid3d();extrudedSolid2.CreateExtrudedSolid(circle2,newVector3d(0,-param.m_y2,0),newSweepOptions());Solid3d extrudedSolid3=newSolid3d();extrudedSolid3.CreateExtrudedSolid(circle3,newVector3d(0,-param.m_y2,0),newSweepOptions());extrudedSolid2.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid3);solid.BooleanOperation(BooleanOperationType.BoolUnite,extrudedSolid2);}

减去小圆柱


向z轴负方向拉伸。

Point3d O4=newPoint3d(0,param.m_YBottom1/2-param.m_yDis4,O1.Z+param.m_disO1O2+param.m_r2);{//减去小圆柱Circle circle=newCircle(O4,Vector3d.ZAxis,param.m_r4);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(circle,newVector3d(0,0,-param.m_r2),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid);}

增加梯形拉伸


C是A和园的切点,D是B和园的切点。注意: 有两个切点,选择Z大的。

{var p8=Polyline8(param,circle2);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(p8,newVector3d(0,-param.m_y8,0),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolUnite,extrudedSolid);}

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
员工说:技术至上,老板不信;投资人的代表说:技术至上,老板会信。
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019C++17
或者 操作系统:win10 开发环境: VS2022C++17
如无特殊说明,本算法用**C++**实现。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 13:49:48

8.1 模块与包

文章目录前言一、简介1.1 模块1.2 包二、使用2.1 创建包和模块2.2 模块和包的引用2.3 使用示例2.4 最佳实践建议2.5 相对导入和绝对导入前言 本文主要介绍模块和包的创建、模块和包的引用等相关知识。 一、简介 1.1 模块 Python 中一个以 .py 结尾的文件就是一个模块。模块中…

作者头像 李华
网站建设 2026/4/14 6:45:17

智能降重与高效创作:8款AI论文写作工具横向评测

AI论文辅助工具根据功能差异适用于不同场景:Grammarly和QuillBot在文本优化方面表现优异,能有效实现降重并降低AIGC检测风险;Paperpal与Writefull专注于提升学术表达的精准度,Scite.ai通过文献引用分析增强论文可信度,…

作者头像 李华
网站建设 2026/4/14 16:37:51

大数据时代 RabbitMQ 助力数据高效分发

大数据时代 RabbitMQ 助力数据高效分发 关键词:大数据时代、RabbitMQ、数据高效分发、消息队列、分布式系统 摘要:在大数据时代,数据的高效分发是众多企业和系统面临的重要挑战。RabbitMQ 作为一款强大的消息队列中间件,凭借其可靠、灵活等特性,在数据分发领域发挥着关键作…

作者头像 李华
网站建设 2026/4/14 15:43:49

C++万能类:any

std::any 是 C17 引入的一个极其重要的特性,它为 C 这种强类型语言带来了类似动态语言(如 Python 变量)的灵活性,同时保持了类型安全。 简单来说,std::any 是一个类型安全的容器,它可以存储“任意”类型的…

作者头像 李华
网站建设 2026/4/12 8:06:59

YOLOFuse是否收集用户数据?本地运行完全离线保障隐私

YOLOFuse是否收集用户数据?本地运行完全离线保障隐私 在安防监控、工业检测甚至自动驾驶等高敏感场景中,AI模型的“聪明”固然重要,但更关键的是——它是否值得信任。当一个目标检测系统接入摄像头时,我们不仅要问:它看…

作者头像 李华