问题标签 [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.

0 投票
1 回答
96 浏览

linear-programming - 单纯形法的多顶点测试问题

我正在寻找为
具有许多顶点的单纯形法线性规划求解器(A x <= b,x >= 0)生成测试问题的方法,因此(我相信)会产生困难的测试问题。

有很多看起来相关的理论,例如 凸多面体可以有多少个顶点? 但是我不知道如何将其转换为 A b 的代码——我不需要所有顶点,而且顶点枚举 无论如何都会爆炸内存。

例如,一个 1000 x 1000 的分配问题给出了一个稀疏的 2k x 1m A 矩阵,其中有 2m 个非零。GLPK simplex 在 34 秒内解决了这个问题——这不是一个测试用例。

0 投票
2 回答
217 浏览

math - 如何在不丢弃的情况下在八面体中生成随机点?

我需要八面体内的随机点,均匀分布。我将八面体定​​义为所有点满足abs(x) + abs(y) + abs(z) <= 1绝对值的体积。IE:六个顶点中的每一个都在一个轴上,距离 0,0,0 1。也许你可以称它为单位八面体。

考虑到定义,我可以天真地生成一个点,如下所示:

问题在于这倾向于较小的 y 值和较小的 z 值。显然不是均匀分布。同样清楚的是,所有这些点都在八个象限之一中。

我避免使用discard 方法,因为这个函数会被调用很多次,而且看起来我应该比丢掉大部分分数做得更好。

请注意,八面体的对偶是立方体。正因为如此,我有一个暗示,可能存在一个简单的函数来将立方体内的任何点转换为八面体内,但这只是我仍在探索的直觉。

0 投票
0 回答
36 浏览

c++ - 有没有办法从 Codeclocks 绘制到 Matlab

所以我写了一个 C++ 代码,给定一个凹多面体,将它分解成凸多面体,我保存在一个列表中。现在我想在 Matlab 上绘制从分解中获得的多面体,看看我的算法是否有效。如果我能做到这一点,现在有人吗?怎么做?

0 投票
1 回答
198 浏览

python - 假设我们知道一个多面体的顶点,并且想要得到它的半空间表示 A * x <= b

A*x <= b给定多面体的顶点,无论是 python 还是 Matlab,我都想得到半空间表示。

假设vertices = [2 -2; 2 2; -10 2; -10 -2];是顶点,我使用了两个不同的库并给出了两个不同的答案,不确定,为什么那些给出不同的答案。

任何有助于理解为什么会发生这种情况的事情真的很感激

0 投票
1 回答
66 浏览

geometry - 给定其他三个,如何计算四面体的第四个顶点?

我想计算正四面体的第四个顶点。我有坐标

{0, 0, Sqrt[2/3] - 1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), -(1/2), -(1/(2 Sqrt[6]))} 和 {-(1/(2 Sqrt[3])), 1/2, -(1/(2 Sqrt[6]))}

有人可以帮忙吗?

0 投票
1 回答
58 浏览

ocaml - 原始表达式与围裙中的结果不一致

我正在使用Apron库的 OCaml 接口。

当我想减少表达式[| x + y -2 >= 0; x + y > - 3=0|]时,结果tab[|-3 + 1 * x + 1 * y >= 0|],我怎样才能得到原点表达式x + y - 3 >= 0

0 投票
1 回答
79 浏览

python - 给定总节点数和每个节点的度数,是否可以构建图?

以立方体为例,有8个节点,12条边,每个节点连接3个节点。

使用networkx,我必须手动输入所有边缘。例如,下面的代码是构建一个包含二十面体所有边的图(12 个节点,30 个边,每个节点 5 个相邻节点)。

我的问题是如何在不手动编写的情况下获得所有可能的边缘。每个节点的名称可以随机初始化。

据我所知, igraph中的 Erdős-Rényi 模型无法约束相邻节点。

0 投票
2 回答
117 浏览

intersection - 使用 CGAL 的两个多面体相交的体积

我正在寻找一种快速的方法来计算两个多面体相交的近似体积。我的程序运行 20k 次迭代,其中每次迭代我需要计算两个多面体的差异体积,每个多面体有大约 100 个顶点(这些多面体中的一个是静止的,另一个在每次迭代中改变其姿势)。我要求该程序在一秒钟内终止。

我曾尝试使用 Nef_polyhedron_3,但它需要一个精确的内核,因此需要大量时间。接下来,我尝试使用 Polygon_mesh_processing::corefine_and_compute_difference,但找不到将 Polyhedron_3 转换为 Surface_mesh 的方法(不使用 Nef_polyhedron)。

如果有人可以帮助我解决这个问题,我将不胜感激。先感谢您!

0 投票
1 回答
52 浏览

c++ - CGAL::Polyhedron_3 使用 make_tetrahedron() 生成不需要的重复顶点,如何解决?

我试图使用CGAL::Polyhedron_3数据结构创建体积网格,但在进行一些测试时,我注意到该make_tetrahedron函数复制了多面体中已经存在的顶点。

示例:共享一个共同面的两个四面体

这是我试过的代码:

这是我希望看到的输出:


但这就是我得到的:

现在,问题是:是否可以在使用该函数
时仅将一个点存储为顶点一次?CGAL::Polyhedron_3make_tetrahedron

0 投票
1 回答
35 浏览

combinatorics - 为给定的矩阵 A 和向量 b 创建多面体

我必须用这个输入创建一个多面体

但是在这样的圣人不平等中A.x + b >= 0,如何转换