问题标签 [concave]
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.
matlab - MATLAB 插值错误地在凹边界上外推
我想contourf
用 MATLAB 在绘图中绘制来自 Ansys Fluent 的曲面解决方案。解决方案是一个 ASCII 格式的表格,其中包含分散的点 (x,y,z),这些点描述了一个平面和每个点的温度。
在第一张图片上,您可以看到以所有点和温度为颜色的散点图。在这里,您可以看到边界的正确几何形状。
但是如果我想要一个等高线图,我需要对散点进行插值。在下一张图片中,您可以看到结果。问题是 MATLAB “通过”边界进行插值,例如在底部。我认为这个问题与凹边界和德劳尼三角剖分有关。
我的代码
在这种情况下,x 坐标是恒定的。我可以通过使用旋转矩阵对每个坐标执行此操作。比我有 ax,y,data 问题。
有没有办法插入我的散点,但要获得正确的边界形状?如何阻止 Matlab 插入没有数据的凹区域?
opengl - opengl glfw 绘制多边形
我使用 openGL 绘制凹面,但第一个凹面(主题)是错误的。 它有4分,但显示是3分,为什么?
另外,我有一个问题 while(!glfwWindowShouldClose(window))
,如何终止渲染循环?
始终运行。这是错误。
python - 凹多边形内部和外部的线段有什么区别?
我的问题是关于在具有多个凸面和凹面多边形的表面中创建可见性图。我的问题是我无法分类连接同一多边形节点的线段是通过还是不通过该多边形。如下图所示:
我需要将橙色的无效行与蓝色的有效行分开。我希望有人可以使用可以在 python 中实现的合适算法为我提供解决此问题的方法。
或者更复杂的多边形?: 困难的多边形
r - 使用 r 将凹多边形变成凸多边形
我正在尝试使用 r 将凹多边形拆分为凸多边形。我试图弄清楚如何为一个多边形成功地实现这一点,并希望以一种自动化的方式在大量多边形上实现这一点。
到目前为止,我能想到的唯一方法是使用三角剖分将这个形状分解成几个较小的形状,然后将它们组合成一些数量最少的凸多边形。
这是我所得到的。是否有一种聪明/有原则的方法将三角形分组为最少数量的组,然后将它们合并,以便最终产品是一组凸多边形?或者有没有更好的方法来解决这个问题?
我很感激帮助。这是shapefile的链接
python - Python numpy.diff 没有给出负数计算加速度?
上面的代码给了我以下输出:
[32. 16. 8. 4. 2. 1.]
这些数字应该是负数,我不知道 numpy 发生了什么
谢谢!
python - 如何在 Python 中“填充”3D 形状的深凹区域
我有描述包含在 3D 细胞壁结构中的体积的数据,包括体素数据(细胞壁内 1,细胞壁外 0)和表面网格(3D 坐标和相关的三角剖分)。我所追求的只是细胞形状的全局轮廓。
所有单元格的中心都有一个空心区域(体素填充为 0,因为它位于单元格壁之外)。对于大多数细胞,它完全封闭在细胞壁内,因此网格和体素都形成了 3D 外壳。这很好,因为填充中心区域对我来说是微不足道的。然而,在某些情况下,有一个孔,因此内部开口有一个直接通往细胞外的“隧道”,如附图所示。我需要关闭它,因为我只想要整个细胞形状的轮廓。那么问题是我如何关闭这条隧道到里面呢?电池具有粗糙的表面,带有许多细小的凹面区域,尽管这种巨大的凹面区域一直延伸到电池中心是不可接受的。
我尝试过使用 alpha 形状算法,但我在 3D 中找到的所有示例都使用了 Delauney 三角剖分,这与我的数据效果不佳(我在这里使用了最佳答案中的代码:3D 中的 Alpha 形状)。如果与我自己的表面网格三角剖分一起使用,这可能是一个可能的解决方案吗?或者有没有更好的方法?本质上,3D凹壳算法是我所想的。我正在使用 Python。
非常感谢您的任何想法。
algorithm - 凸多边形包含在带有旋转角的凹多边形内
我有一个凸多边形(多边形 A)和一个凹多边形(多边形 B)。我想弄清楚给定凸多边形的旋转角度的凸多边形是否适合凹多边形,因为凸多边形可以在凹多边形内旋转 360 度。
幼稚的计算方式。
以 Polygon B 的中点为 origin 初始化多边形 A。对于凸多边形的每个旋转角度,计算以下
步骤 1:计算点对应于具有旋转角的凸多边形。将旋转的凸多边形和凹多边形的所有点放在一个集合中
第 2 步:使用 grahamscan (Convex Hull) 和新的一组点找到凸多边形。
第 3 步:现在你有一个包含两个多边形的大凸多边形。这意味着你有新创建的多边形的顶点。我们称之为多边形 C
第 4 步:现在检查多边形 C 和多边形 B 是否具有相同的顶点集,如果是,则意味着多边形 B 包含多边形 A
一种潜在的优化可能是利用旋转对称角,但我不确定我们是否可以使用它。由于我们正在处理凸多边形,我们一定会在 (360/n) 度找到第一个对称。其中 n 是顶点数。
在上述示例的情况下,我们能否将旋转角度映射为 1 度旋转对应于 91 度旋转,并在旋转对称角之前完成该过程?
无需遍历所有旋转角度即可解决此问题的任何其他有效方法。任何指针将不胜感激。