问题标签 [polyhedra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
computational-geometry - 围绕多面体的最小矩形框
我正在寻找一种算法来找到包围多面体的最小盒子。
我的想法如下:找到最大的边,然后移动实体,使边与x轴对齐。找到与该边相交的下一个最大边,并将其尽可能靠近 z 轴对齐,同时将另一边留在 x 上。然后,计算 x、y 和 z 的最大差异。使用这些尺寸创建周围的形状,然后将框移回对象的原始位置。
有没有更有效的策略呢?我的想法是否忽略了一些极端情况?
编辑:现在假设要绑定的对象是凸的。不过,一般情况下的答案也将受到欢迎。
computational-geometry - 如何计算凸多面体和另一个多面体之间的交集?
手头的问题是与 3D 空间内的 2D 增长有关的科学模拟的一部分。2D 形状通过将(三角形)段添加到先前增长的形状来增长。
请注意,3D 中的实际段具有厚度,因此,我的代码实际上适用于三角棱镜。
在某一时刻,这些 2D 形状(具有任何相对方向和位置)发生碰撞。
如果其中一个新的三角棱柱与先前插入的线段相交,我只想插入与先前插入的线段不相交的线段的“部分”。如下所示,标记为 T1 和 T2 的段。
在第一步中,我计算了所有相交边到面。然后,我使用 3D 中的 CGAL Delaunay Triangulation 包对四面体网格中的结果点集进行网格划分。最后一步,我扔掉所有与之前插入的线段相交的四面体。在大多数情况下,这很有效——但我现在确信这个想法由于根本原因而行不通。
有什么更可靠的计算方法?
c++ - 如何控制 OpenCV findContours 中点的顺序?
我正在研究 C++ 中的 OpenCV 代码,它基本上试图检测图像中页面的边界点。我使用 findCountours() 函数来查找轮廓,然后,我尝试使用 approxPolyDP() 函数查找四边形,并且只考虑只有 4 个点的四边形。我的代码主要基于 OpenCV 示例中的 squares.cpp 代码。
它工作并返回 4 分。我很高兴……但这种幸福并没有持续多久。:( 我很快意识到返回点的顺序似乎是随机的(对于不同的图像不同)。我希望算法只以特定的顺序返回 4 个点(例如,左上角,然后右上角,然后是右下角,然后是左下角。
以相同的固定顺序获取点对我的应用程序至关重要,因此,我的问题是“有没有办法修复这些点被算法检测和返回的顺序”(代码几乎与正方形相同。 OpenCV 的 cpp 示例)。任何帮助将不胜感激。不用说,TIA。:D
sql - 用于非独特选择错误的 DISTINCT 子句
我想使用数据中的一个字段填充一个下拉框,我只想为一个表中的一组数据返回唯一值。Group by 在我使用的多面体数据库中没有实现。名称是表的主键,所有名称都是唯一的。
我正在尝试运行此查询:
但我得到这个错误:
用于非独特选择的 DISTINCT 子句
geometry - PSLG 到多面体复合体
我们有一个 PSLG,它的外表面是三角形,其他面可以是三角形或四边形。我们获得了穿过 PSLG 的半边。什么是需要最少更改次数才能将 PSLG 转换为多面体复合体的有效算法?
cgal - 当我在 CGAL Polyhedron 演示中加载 .off 文件时,窗口中没有显示任何内容
在此处输入图像描述 我已经成功构建了演示,并运行了演示,但是当我尝试加载 .off 文件时,它什么也没有出现。在控制台窗口中,错误消息“QWindowsNativeFieDialogBase::shellitem:SHCreateItemFromParsingName(file:debug)failed(no such file or direcory)”有人可以给我任何指示吗?
python - 多面体的德劳内三角化(Python)
我正在尝试在 python 中获取多面体的Delaunay 三角剖分,以便我可以计算质心。我看到有一个Delaunay函数scipy.spatial
,它在 n 维中工作。问题是文档显示了 2D 的使用,并没有告诉我如何处理更高的维度。能够将这个对象分解成一个数组可能会为我解决这个问题,但我不知道该怎么做。
我遇到的问题是我不知道如何验证它在输出对象时是否正常工作。我在谷歌上找不到任何关于如何绘制多面体或如何使用 scipy 吐回的对象的信息。
如果我做
我真的很想能够取回这些四面体的坐标,这样我就可以计算出多面体的质心。如果我也能够绘制镶嵌多面体的图形,那也将非常好。我在 MATLAB 中看到我可以使用一个名为 trimesn 的函数来做到这一点,我从 matplotlib 中找到了一个,但它似乎真的很不同,它的文档也不是很好。
matlab - 找到多面体的边集,不重复
我有一个由一系列顶点定义的多面体,这些顶点是 R^3 中的向量,以及三角形面,它们由定义面的三个顶点的映射定义。
例如,这里是 V 和 F
欧拉公式给出了面、边和顶点之间的关系
我试图从顶点中找到多面体的独特边集。通过执行以下操作,我已经可以找到每个面的所有边(每个面 3 条边,每条边都是两个相邻面的成员)
但是,这会找到每个面的所有边并包括重复项。面 A 上的边 e_i 也是面 B 上的 -e_i。
任何人都有一个很好的方法来找到唯一的边集(正方向和负方向),或者确定 e1、e2、e3 内将正边与负边联系起来的映射?