问题标签 [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.
javascript - 使用 JavaScript 建模 3D 多面体
是否有使用 canvas 标签或 SVG 对3D 多面体建模的 JavaScript 库?假设我想制作柏拉图立体的渲染,我将如何最好地实现这一目标?FWIW,我只关心基于 WebKit 的网络浏览器,例如 Safari 和 Chrome。
我已经看过这个关于如何渲染3D 三角形的酷演示,但是我如何将它扩展到具有任意边数的多面体呢?
matlab - 如何在 MATLAB 中将多面体分解为四面体?
我有一个多面体,有一个顶点列表 ( v
) 和曲面 ( s
)。如何将这个多面体分解成一系列四面体?
我特别想知道是否有任何内置的 MATLAB 命令。
geometry - 在 Mathematica 中将点从 4d 空间投影到 3d 空间
假设我们有一组点,其限制条件是每个点的所有坐标都是非负的,并且坐标之和等于 1。这将点限制在 3 维单纯形中,因此尝试映射是有意义的它回到 3 维空间进行可视化。
我正在寻找的地图将采用极值点 (1,0,0,0),(0,1,0,0),(0,0,1,0) 和 (0,0,0,1)到“定位良好”的正四面体的顶点。特别是,四面体的中心位于原点,一个顶点位于 z 轴上,一个面平行于 x,y 平面,一个边平行于 x 轴。
这是对 3 维中的点执行类似操作的代码,但如何将其扩展到 4 似乎并不明显。基本上我正在寻找函数 tosimplex 的 4 维等效项(它将 4 维变为 3 维)并且它是相反的从单纯形
回答:
根据矩阵直接重新表述deinst的答案给出了以下内容。(1/sqrt[4] 作为第 4 个坐标出现,因为它是到单纯形中心的距离)
c++ - OpenGL 二十面体纹理映射
我目前没有解决从极到极没有接缝的二十面体纹理映射的解决方案。这个图元的纹理映射似乎是一个普遍的问题,还没有完全解决。我做了很多研究,我尝试了很多不同的方法来生成 uv 坐标,最接近(和最小)的方法是这样的:
二十面体或地理圈是各种开源框架的一部分,例如 jMonkeyEngine 或 Geist3D,但似乎没有一个实现可以正常工作。映射展开的矩形纹理应该不是不可能的,还是我错了?欢迎每个代码片段。
我在这里上传了 Xcode 项目,它是用 iPhone 的 openFrameworks 0.61 构建的。里面还有两个PNG文件,每个文件都显示了另一个接缝变化。
computational-geometry - 3D 多面体的精确中轴、曲面、骨架
我有兴趣寻找软件来计算 3D 多面体的精确中轴(或您选择的术语!)。我想输出将是一个三角形面列表,可能是边和顶点,代表内侧表面的连接点、薄片和接缝。理想情况下,我想要可以处理所有多面体的东西,包括凹形(此时三角形面还不够),但我很高兴找到可以处理凸多面体的东西。
先说一下我知道的软件:
有多种“近似”方法可用,它们假设我正在变换的形状是一个复杂的表面,并且通过在表面上散布密集点来实现。
其中一种方法是http://www.cs.ucdavis.edu/~amenta/powercrust.html提供的powercrust软件
(虽然应该如何为这个软件定义点文件以便正确处理凹面情况,但我不是当然)
另一种近似方法集成到 Tight Cocone (http://www.cse.ohio-state.edu/~tamaldey/cocone.html)。这再次将点密集分布在表面上,并使用 voronoi 图收敛到中轴。有一个“改进的 CAD 模型中轴”版本,它利用了表面完全已知的事实。然而,这种改进的模型并未并入分布式代码中。
有一个 Matlab 代码,例如 Gianni Schena (http://www.mathworks.com/matlabcentral/fileexchange/4917-skeleton-in-3d) 的“3D 骨架”,它使用了几个基于距离的简单方法转换。还是近似的。
显然,近似方法可能会受到某些类型的数值不稳定性的影响,从而使表面出现“尖峰”。此外,它们会生成非常大的面和顶点数据结构。我想要的是一个多面体(如立方体)的中轴/表面的精确表示,它应该有一个非常简单和小的数据结构。
在 [2004, Culver, Keyser, and Manocha, Exact Computation of the Medial Axis of a Polyhedron] 中,发表了一种计算多面体精确中轴的方法。但是,我找不到任何有人实际实现了这种方法的软件。
有人知道什么,或者有什么可以添加到我对 3D 内表面软件的小尝试中吗?
c++ - 确定一个点是否在多面体内部
我试图确定一个特定点是否位于多面体内。在我目前的实现中,我正在研究的方法是我们正在寻找多面体的面数组(在这种情况下是三角形,但以后可能是其他多边形)。我一直在尝试从这里找到的信息中工作:http: //softsurfer.com/Archive/algorithm_0111/algorithm_0111.htm
下面,您将看到我的“内部”方法。我知道 nrml/normal 有点奇怪.. 这是旧代码的结果。当我运行它时,无论我给它什么输入,它似乎总是返回 true。(这已经解决了,请看我下面的答案——这段代码现在可以工作了)。
这是在 C++ 中,但正如评论中所提到的,它真的与语言无关。
gcc - Cloog-ppl make error
I'm trying to install cloog-ppl 0.15-11 in my 64 bit ubuntu 10.10. I get the following error during make. I guess it is wrt linking.
Can some one help me out on this ?
algorithm - 多面体图(平面三连通图)同构的算法?
我已经对平面 3 连通图的图同构主题进行了一些研究,但是有大量不同限制、理论复杂性和使用频率的算法,我很难找到一个突出的算法:
- 容易明白
- 可以以最大的清晰度实施
- 在小图(最多几十个顶点)上具有良好的实际性能
如果我自己不了解不同的算法,很难知道我是否更适合使用旧的、更专业的算法来解决这个问题,还是使用更新的、更通用的算法。在所有可能的候选人中,哪一个是最合适的?
c# - 以原点为中心的十二面体三角形的索引
维基百科说原点的十二面体具有具有此坐标(x,y,z)的顶点:
假设我将在 vertexBuffer 中有这个顶点 - 这将是一个 Point3D 数组。我需要为 indexBuffer(它是一个 int 数组)准备三角形索引。十二面体有 12 个面,每个面都是五边形,我将以这种方式从 3 个三角形创建每个面:
为了更简单的多面体,我可以绘制它,然后标记顶点,然后轻松获取索引,但在这种情况下,这不是一个好方法,因为在这个有 20 个面的二十面体等着我之后:/
所以我的问题是:有没有任何更简单的方法如何根据上面指定的要求获取此顶点的索引?
注意:
我还应该提到,我不能使用 openGL 或 DirectX。我们应该在没有这个库的情况下练习 3D 图形。
performance - 给定顶点时计算多面体的质心和体积
给定凸多面体 (3D) 的顶点位置,我需要计算多面体的质心和体积。Mathworks 网站上提供了以下代码。
代码很优雅,但速度非常慢。我需要数百次计算数千个多面体的体积和质心。在当前状态下使用此代码是不可行的。有谁知道更好的方法或者这个代码可以更快吗?我能想到一些小的变化,比如mean
用表达来代替平均值。