Questions tagged «geometry»

与几何相关的数据结构和算法。

1
寻找最少的矩形以覆盖一组矩形而不重叠的算法
我有一组矩形,我想“减少”该矩形,所以我用最少的矩形来描述与原始矩形相同的区域。如果可能的话,我希望它也很快,但是我更关心的是使矩形的数量越少越好。我现在有一种方法在大多数时间都有效。 目前,我从最左上角的矩形开始,看看是否可以在保持矩形的同时向右和向下扩展它。我这样做直到它无法再扩展,然后删除并拆分所有相交的矩形,然后将扩展的矩形添加回列表中。然后,我使用最左上角的下一个矩形再次开始该过程,依此类推。但是在某些情况下,它不起作用。例如: 使用这组三个矩形,正确的解决方案将以两个矩形结束,如下所示: 但是,在这种情况下,我的算法从处理蓝色矩形开始。这会向下扩展并分裂黄色矩形(正确)。但是,当处理完黄色矩形的其余部分时,它没有向下扩展,而是先向右扩展,然后取回先前拆分的部分。然后处理最后一个矩形,它不能向右或向下扩展,因此保留了原来的矩形集。我可以调整算法,使其首先向下扩展,然后再向右扩展。这样可以解决这种情况,但是在翻转的类似情况下会导致相同的问题。 编辑:只是为了澄清,原始的矩形集不重叠,也不必连接。如果连接了矩形的子集,则完全覆盖矩形的多边形可能会在其中带有孔。

11
从旋转的矩形计算边界框坐标
我有一个矩形左上角的坐标,以及它的宽度,高度和从0到180和-0到-180的旋转。 我试图获取围绕矩形的实际框的边界坐标。 计算边界框坐标的简单方法是什么 最小y,最大y,最小x,最大x? A点并不总是在最小范围内,它可以在任何地方。 如果需要,我可以在as3中使用矩阵转换工具包。

13
如何将2D点反向投影到3D中?
我在屏幕空间中有4个2D点,​​我需要将它们反向投影回3D空间。我知道这4个点中的每一个都是3D旋转的刚性矩形的一个角,并且知道矩形的大小。如何从中获得3D坐标? 我没有使用任何特定的API,并且没有现有的投影矩阵。我只是在寻找基本的数学来做到这一点。当然,没有足够的数据将单个2D点转换为没有其他参考的3D,但是我想像一下,如果您有4个点,您会知道它们在同一平面上彼此成直角,而且您知道它们之间的距离,那么您应该能够从那里弄清楚。不幸的是我无法完全解决。 这可能属于摄影测量法的范围,但是google搜索并没有带我任何有用的信息。

2
CGAL连接2个几何
目前,我尝试加入未连接的网格的不同部分。从示例中,我发现了这个(blobby_3cc.off)。 使用keep_large_connected_components和keep_largest_connected_components删除所有较小的组件。这使这3个保持在下面。 我在文档中找不到将它们连接在一起并填充缺失部分的方法。一种解决方案是创建1个三角形并填充孔(因为这是1个具有大孔的对象)。但是我找不到将它们结合在一起的方法。 有人对此有解决方案吗? 我正在使用CGAL for C ++。
11 3d  geometry  cgal 

1
如何使纹理始终面对相机..?
更新5 创建了另一个小提琴以显示预期的外观。添加了不可见的穹顶和魔方相机,并使用了环境贴图;就我而言,由于已经提到的原因,不应使用这些技术。 显示代码段 var MatcapTransformer = function(uvs, face) { for (var i = uvs.length; i-- > 0;) { uvs[i].x = face.vertexNormals[i].x * 0.5 + 0.5; uvs[i].y = face.vertexNormals[i].y * 0.5 + 0.5; } }; var TransformUv = function(geometry, xformer) { // The first argument is also used as an array …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.