CGAL 我怎么知道三角形是否在边界上
CGAL How can I tell if triangle is on the boundary
我希望能够提取三角测量边界上每条边的顶点。问题是,如有必要,我首先通过在域中定义约束和孔来定义约束三角测量。然后我需要通过网格细化算法细化网格。一切都很好,花花公子,除了一个小故障。我必须分辨出哪条边位于哪条边界上。让我举个例子:给定定义域的 4 条折线,并且是三角测量中的约束(比如顶部、底部、左侧和右侧的折线),我必须告诉边缘位于哪条折线上。我将每条折线定义为 std::vector,可以很容易地探测段上的点。喜欢这个:CDT::P oint pt1;CDT::P oint pt2;
for(const auto& seg : segments)
{
if(seg.has_on(pt1))
{ num++; }
if(seg.has_on(pt2))
{ num++; }
if(num==2){/*success? -> return true*/}
}
我知道 CGAL::bounded_side_2 函数,可悲的是它在多边形上运行。如何解决这个问题?
for(CDT::Finite_edges_iterator it = cdt.finite_edges_begin();
it != cdt.finite_edges_end(); ++it)
{
CDT::Edge e=*it;
// how can I tell if an edge is on boundary?
}
可以使用约束三角测量中的is_contrained方法。
if (cdt.is_constrained(e)) ...
如果可以具有下垂边缘,则必须首先标记域,如以下示例所示,并检查该边缘是否入射到具有不同nesting_level
的两个面。
相关文章:
- 跨 DLL 边界访问虚拟方法是否安全/可能?
- 在 c++ 中是否允许创建具有运行时边界的数组?
- 是否可以跨 dll 边界返回常量引用/指向 std::vectors?
- C++11:16 字节原子<>变量是否在 16 字节边界上自动对齐,从而允许CMPXCHG16B指令?
- 检查子对象的地址是否在包含对象的边界内是否合法
- 在 C/C++ 中在特定地址边界上对齐内存是否仍能提高 x86 性能?
- 是否可以跨 DLL 边界传递 FILE 对象?
- CGAL 我怎么知道三角形是否在边界上
- Visual Studio 是否允许您在数组的边界之外访问?(VS2013)
- 是否可以让boost语言环境边界分析在撇号上进行拆分
- 浮点数组是否始终与16字节边界对齐
- 无符号整数的类型双关语是否可以通过消除 >= 比较的需要来加快边界检查速度?
- #if 条件区域是否可以跨越包含文件边界
- 如何确定 (x, y) 点是否位于由边界点列表定义的多边形内
- 使用 COM 跨 CRT 边界调用是否安全
- 三次方贝塞尔曲线是否完全包含在控制点的边界框中?
- 在跨DLL边界使用的类中将字符串用作私有数据成员是否安全?
- Xcode是否可以防止c++数组边界运行时问题?
- 即使边界键不存在,我是否可以遍历 std::map 键范围?
- QGraphicsItem::boundingRect()是否包含子边界rect ?