【CGAL_多面体】3D多面体表面
3D多面体表面
1 概述
三维多面体表面由顶点、边、面及其上的关联关系组成,基于半边数据结构设计。多面体表面可以看作为一个容器类,它管理顶点、半边、小平面及其入射关系,并保持它们的组合完整性。
一个三维的多面体表面Polyhedron_3<PolyhedronTraits_3>
由顶点V、边E、面F和它们上的入射关系组成。每条边由两个方向相反的半边表示。使用半边存储的关系如下图所示:
- 按照惯例,从多边形外部看,半边沿逆时针方向围绕面。
- 自相交不容易有效地被检测到。
Polyhedron_3<PolyhedronTraits_3>
仅保持多面体表面的组合完整性(使用欧拉运算),不考虑点的坐标或任何其他几何信息。
很多栗子
第一个简单例子
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron; //通过使用内核作为特征类
typedef Polyhedron::Halfedge_handle Halfedge_handle; //半边句柄
int main() {Polyhedron P;Halfedge_handle h = P.make_tetrahedron(); //返回P的任意半边if (P.is_tetrahedron(h)) //检查h是否属于多面体表面return 0;return 1;
}
顶点迭代器的使用
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h>
#include <iostream>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_3 Point_3;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
typedef Polyhedron::Vertex_iterator Vertex_iterator;
int main() {Point_3 p( 1.0, 0.0, 0.0);Point_3 q( 0.0, 1.0, 0.0);Point_3 r( 0.0, 0.0, 1.0);Point_3 s( 0.0, 0.0, 0.0);Polyhedron P;P.make_tetrahedron( p, q, r, s);CGAL::IO::set_ascii_mode( std::cout);for ( Vertex_iterator v = P.vertices_begin(); v != P.vertices_end(); ++v)std::cout << v->point() << std::endl;return 0;
}
我们也可以使用std::copy 和 ostream 迭代器适配器简化for遍历:
std::copy( P.points_begin(), P.points_end(),std::ostream_iterator<Point_3>(std::cout,"\n"));
多面体的绘制
draw_polyhedron.cpp
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/draw_polyhedron.h>
#include <fstream>
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
int main(int argc, char* argv[])
{Polyhedron P;std::ifstream in1((argc>1)?argv[1]:CGAL::data_file_path("meshes/cross_quad.off"));in1 >> P;CGAL::draw(P);return EXIT_SUCCESS;
}
【CGAL_多面体】3D多面体表面相关推荐
- CAD随机多面体3D 多面体骨料 凸多面体颗粒
插件简介 CAD随机多面体3D插件可用于在AutoCAD软件内生成三维随机多面体模型,实现三维多面体的随机分布,同时可生成与多面体相适配的长方体带孔洞基体. 应用范围 插件生成的随机分布多面体模型可导 ...
- CGAL笔记之单元格复合体和多面体篇——多面体的 3D Minkowski 和
CGAL笔记之单元格复合体和多面体篇--多面体的 3D 闵可夫斯基和 介绍 分解法 特性和约束 用法 介绍 如下图,勺子和星星的 Minkowski 和. 分解法 计算非凸多面体闵可夫斯基和的分解方法 ...
- Abaqus 三维多面体骨料 随机多面体3D 无干涉多面体骨料模型
在三维混凝土细观模型的构建过程中,为了简化建模及模拟过程多采用二维模型,如采用圆形或多边形来近似取代混凝土内的粗骨料,部分学者采用的三维模型较多是把骨料简化为球形来进行建模,而在混凝土中,骨料多为不规 ...
- 优秀课程案例:使用Scratch绘制3D多面体!
,点击上面微信号关注我关注我哟每天坚持推送文章,争取做到日更,喜欢的可以设置星标,并分享点赞我们的文章,非常感谢大家的支持,您的点击的在看就是我们的动力! 阅读量越来越低了,但是我依旧坚持分享,许多案 ...
- CGAL笔记之单元格复合体和多面体篇——多面体凸分解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 CGAL笔记之单元格复合体和多面体篇--多面体凸分解 1 介绍 2 接口使用 1 介绍 对于非凸多面体的许多应用,有一个有效的解决方案 ...
- 「过拟合」也能废物利用了:有人用它高清重建3D物体表面,参数减少99%
鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 听到过拟合三个字,大部分机器学习研究者都会如临大敌. 毕竟没有人会希望自家模型崽崽,脱离了题集范围就不会考试了. 但现在,多伦多大学和麦吉尔 ...
- 从多变形面积到多面体体积:鞋带公式的3D版本
怎样根据多边形顶点坐标计算多边形面积,以及3D情况下怎样根据多面体的顶点坐标计算多面体的体积? 多边形的面积计算方法中,有一条像变戏法一样的计算方式:鞋带定理,可以直接根据多边形的各个顶点坐标得到多变 ...
- CGAL 4.11 官方文档 软件包概述 ——胞腔复形与多面体类
原文链接:https://doc.cgal.org/latest/Manual/packages.html 译文首发:http://blog.csdn.net/duzixi Cell Complexe ...
- COMSOL随机多面体骨料 三维凸多面体骨料 无规则孔隙 三维混凝土细观 三维骨料模型
混凝土模型 三维混凝土细观模型的建立是进行混凝土性能模拟的有效方法,而在comsol建模过程中随机凸多面体骨料的生成是几何模型的难点.这里提供一种快速高效的三维凸多面体骨料建模的方案,以实现不同集配的 ...
- 超平面、半空间、多面体的辨析
超平面 超平面是具有以下形式的集合:,其中.即超平面是非平凡的线性方程的解空间,超平面是一个仿射集合. 中由法向量和超平面上一点确定的超平面.对于超平面上任意一点(如深色箭头所示)都垂直于. 半空间 ...
最新文章
- 如何定制一款12306抢票浏览器——处理预订页面和验证码自动识别功能
- 从零开始学习python-如何从零开始学python?
- hibernate中的 bag
- 计算机视觉和图像分类,图像分类 - 计算机视觉 - Azure Cognitive Services | Microsoft Docs...
- 数据即代码:元驱动编程
- sketchup生成面域插件_独家教程 | 快速抓取“高精准”场地信息,康石石教你生成不同“体量”地形...
- PowerShell在SharePoint 2010自动化部署中的应用(1)--代码获取
- windows10 64位 JDK1.8 下载
- 期末复习-选择题整理(湖南大学操作系统课程雨课堂答案即期末题库)
- 计算机毕业设计题目汇总 - 简单的毕设选题
- 白天黑夜、中午和傍晚的固定配色绘画技巧
- Team:Syclover Author:L3m0n Email:iamstudy@126.com
- 管理经济学 知识点总结(一)
- win10三国志14已停止工作解决方法--win10专业版
- java多态app_【Java基础】Java中的多态
- Docker Desktop删除镜像后磁盘空间未减少
- linux 无线网卡
- arduino uno模拟遥控器控制无刷电机
- 计算机多用户间软件共享文件,计算机文件共享有什么好处
- 【解决】快速启动栏消失了
热门文章
- Linux运维——高级指令
- python ——找出 每行中长度超过3的单词
- vscode环境搭建:配置prettier
- 增值税税控设备(计算机打印机)全额抵扣,一般纳税人税控专用设备和技术费用抵减税额会计处理...
- 充电识别过程及QC2.0
- itest考试切屏能检测出来吗_itest测试
- Halcon 毛刺检测
- Win10任务栏卡死,无响应,一直转圈,点不动
- 使用netwox实现tcp rst 攻击及防御措施
- 超微服务器双路主板系列,超微发布X12DPL系列服务器主板 支持双路10nm Ice Lake至强处理器...