news 2026/6/18 7:26:41

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

作者头像

张小明

前端开发工程师

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/6/18 6:44:45

Windows安装Python图文详解:官网下载与PATH配置必知要点

在Windows上安装Python是数据分析、自动化办公和Web开发的第一步。许多初学者在安装过程中会遇到环境变量配置、版本选择等实际问题。本文将基于实际经验&#xff0c;为你梳理清晰、可操作的安装流程&#xff0c;并解答几个常见的关键问题。 Python安装包从哪里下载 建议直接从…

作者头像 李华
网站建设 2026/6/13 15:12:11

零基础入门AI测试:5分钟创建你的第一个智能测试脚本

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向新手的AI测试教学项目&#xff0c;要求&#xff1a;1.提供分步指导的测试脚本生成向导 2.包含API测试、简单UI测试等基础示例 3.自动解释生成的测试代码逻辑 4.提供修…

作者头像 李华
网站建设 2026/6/17 18:27:28

边缘计算落地方案:云端训练+本地部署的姿态估计实践

边缘计算落地方案&#xff1a;云端训练本地部署的姿态估计实践 引言&#xff1a;当工厂监控遇上AI姿态识别 想象一下这样的场景&#xff1a;在繁忙的工厂车间里&#xff0c;工人正在操作重型设备。突然&#xff0c;有人因为疲劳操作进入了危险区域&#xff0c;传统监控系统只…

作者头像 李华
网站建设 2026/6/13 18:01:06

HunyuanVideo-Foley API调用:集成到自有系统的接口说明

HunyuanVideo-Foley API调用&#xff1a;集成到自有系统的接口说明 1. 引言 1.1 业务场景描述 随着短视频、影视后期和互动内容的爆发式增长&#xff0c;音效制作已成为视频生产链路中的关键环节。传统音效添加依赖人工逐帧匹配&#xff0c;耗时长、成本高。HunyuanVideo-Fo…

作者头像 李华
网站建设 2026/6/17 6:21:41

GLM-4.6V-Flash-WEB网页推理卡顿?网络配置优化教程

GLM-4.6V-Flash-WEB网页推理卡顿&#xff1f;网络配置优化教程 智谱最新开源&#xff0c;视觉大模型。 1. 背景与问题定位 1.1 GLM-4.6V-Flash-WEB 简介 GLM-4.6V-Flash-WEB 是智谱 AI 推出的最新开源视觉大模型&#xff0c;支持图像理解、多模态问答、文档解析、图表识别等复…

作者头像 李华
网站建设 2026/6/12 16:04:53

零基础入门:5分钟学会使用无头浏览器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个极简的无头浏览器入门示例&#xff0c;功能包括&#xff1a;1. 打开指定网页&#xff1b;2. 截图保存&#xff1b;3. 提取页面标题&#xff1b;4. 点击简单按钮&#xff1…

作者头像 李华