news 2026/4/15 15:05:57

【三维 五角星】平面五角星放样到三维

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【三维 五角星】平面五角星放样到三维

本文涉及知识点

计算几何

效果


原理


平面五角星和一点放样。平面五角星=五边形(01234)-五个三角形,这五个三角形的端点分别是:
0,1,(02和14交点)
1,2,(13和20交点)
2,3,(24和31交点)
3,4(30和42交点)
4,0(41和03交点)
总结:i,i+1,(线段i(i+2)%5 线段(i+1)%5((i+1+3)%5)

代码

classStar{publicstaticvoidCreate(SStarParam param){CMathConfig.s_dLenTol=0.0001;SPoint2D[]pts=newSPoint2D[5];Point3d[]pt3Ds=newPoint3d[5];doubleradian=2*Math.PI/5;for(inti=0;i<5;i++){pts[i].X=param.m_dRadius*Math.Cos(radian*(i+1));pts[i].Y=param.m_dRadius*Math.Sin(radian*(i+1));pt3Ds[i]=pts[i].To3();}Polyline3d pl=RegionTools.CreateSimplePolyline3d(pt3Ds);Region reg=RegionTools.CreateRegion(pl);RegionTools.CreateRegion(pl);for(inti=0;i<5;i++){intj=(i+1)%5;intk1=(i+2)%5;intk2=(j+3)%5;CAxByC0 line1=newCAxByC0(pts[i],pts[k1]);CAxByC0 Line2=newCAxByC0(pts[j],pts[k2]);var ptCross=line1.Cross(Line2);Point3d[]ptTriangle=newPoint3d[]{pts[i].To3(),pts[j].To3(),ptCross.To3()};var triangle=RegionTools.CreateSimplePolyline3d(ptTriangle);var regTriangle=RegionTools.CreateRegion(triangle);reg.BooleanOperation(BooleanOperationType.BoolSubtract,regTriangle);}Point3d[]tops=newPoint3d[3]{newPoint3d(param.m_dRadius/1000,0,param.m_dHalfHeight),newPoint3d(-param.m_dRadius/1000,0,param.m_dHalfHeight),newPoint3d(0,param.m_dRadius/1000,param.m_dHalfHeight)};var topTriangle=RegionTools.CreateSimplePolyline3d(tops);Point3d[]bottoms=newPoint3d[3]{newPoint3d(param.m_dRadius/1000,0,-param.m_dHalfHeight),newPoint3d(-param.m_dRadius/1000,0,-param.m_dHalfHeight),newPoint3d(0,param.m_dRadius/1000,-param.m_dHalfHeight)};var bottomTriangle=RegionTools.CreateSimplePolyline3d(bottoms);var solid1=SolidTool.Lofted(reg,topTriangle,newLine(newPoint3d(0,0,0),newPoint3d(0,0,param.m_dHalfHeight)));var solid2=SolidTool.Lofted(reg,bottomTriangle,newLine(newPoint3d(0,0,0),newPoint3d(0,0,-param.m_dHalfHeight)));solid1.BooleanOperation(BooleanOperationType.BoolUnite,solid2);solid1.ColorIndex=1;CadBase.AddEnity(solid1,"0",null);}}

扩展阅读

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

视频课程

先学简单的课程,请移步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/10 18:51:54

RabbitMQ、Kafka消息队列安装指南与避坑要点

消息队列是分布式系统中的关键组件&#xff0c;负责应用间的异步通信和解耦。对于开发者和运维人员来说&#xff0c;正确安装和部署是使用它的第一步。本文将基于主流技术栈&#xff0c;分享几个核心的安装场景和实践中需要注意的关键点&#xff0c;帮助你快速搭建一个稳定可用…

作者头像 李华
网站建设 2026/4/5 21:06:43

AI绘画自由职业:Z-Image云端工具月省5000硬件成本

AI绘画自由职业&#xff1a;Z-Image云端工具月省5000硬件成本 1. 为什么自由职业者需要云端AI绘画方案 作为一名AI绘画自由职业者&#xff0c;你可能经常面临这样的困境&#xff1a;接单不稳定时&#xff0c;花大价钱购置的高性能显卡长期闲置&#xff1b;项目集中爆发时&…

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

SSD1306开发效率翻倍:手册没告诉你的技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 基于SSD1306中文手册&#xff0c;总结并实现5个提升开发效率的高级技巧&#xff1a;1) 快速清屏不闪烁的方法&#xff1b;2) 双缓冲技术实现流畅动画&#xff1b;3) 自定义字体的优…

作者头像 李华
网站建设 2026/4/11 1:41:05

HunyuanVideo-Foley保姆级教程:解决常见报错与输入问题

HunyuanVideo-Foley保姆级教程&#xff1a;解决常见报错与输入问题 1. 背景与技术价值 1.1 视频音效生成的行业痛点 在传统视频制作流程中&#xff0c;音效设计是一项高度依赖人工的专业工作。无论是影视后期、短视频创作还是游戏动画&#xff0c;都需要音频工程师根据画面逐…

作者头像 李华
网站建设 2026/4/12 4:27:41

OMNIBOX在企业搜索中的实际应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个企业级OMNIBOX搜索工具&#xff0c;用于快速检索内部文档和知识库。要求&#xff1a;1. 支持多种文档格式&#xff08;PDF、Word、Excel等&#xff09;&#xff1b;2. 实现…

作者头像 李华
网站建设 2026/4/12 22:28:40

大学生CTF零基础入门全指南|从报名到解题,一步到位

对于计算机相关专业的大学生而言&#xff0c;CTF&#xff08;夺旗赛&#xff09;不仅是检验专业能力的实战舞台&#xff0c;更是提升技术水平、丰富简历亮点的优质途径。但很多零基础同学会困惑&#xff1a;“我没基础能参加CTF吗&#xff1f;”“大学生该怎么入门、怎么报名参…

作者头像 李华