问题标签 [tesselation]
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.
math - 用六角地图瓷砖覆盖地球
许多策略游戏使用六边形图块。主要优点之一是任何瓦片的中心与其所有相邻瓦片的距离相同。
我想知道是否有人对将六边形瓷砖系统与传统地理系统(经度/纬度)结合起来有任何想法。我认为用六边形瓷砖覆盖地球并能够将地理坐标映射到瓷砖会很有趣。
以前有没有人看到过任何接近这个的东西?
更新
我正在寻找一种方法来细分球体的表面,以便每个部分都具有相同的表面积。理想情况下,相邻细分的中心是等距的。
wpf - 在 WPF 中无缝平铺矩形
我想在 WPF 中无缝平铺一堆不同颜色的矩形。也就是说,我想将一堆矩形边对边放置,并且它们之间没有间隙。
如果一切都与像素对齐,则可以正常工作。但我也想支持任意缩放,理想情况下,我不想使用 SnapsToDevicePixels(因为当图像被缩小时它会影响质量)。但这意味着我的矩形有时会出现间隙。例如:
如果 ScaleTransform 的 ScaleX 为 1,则 Rectangle 可以无缝地组合在一起。当它为 0.5 时,它们之间有一条深灰色的条纹。我明白为什么 - 组合的半透明边缘像素不会组合成 100% 不透明。但我想要一种方法来解决它。
我总是可以让矩形重叠,但我并不总是事先知道它们将采用什么模式(这是为最终将支持地图编辑器的游戏)。此外,当事物被放大时,这会导致重叠区域周围的伪影(除非我在重叠部分做了斜切角,这是一项非常大量的工作,并且仍然会在角落造成问题)。
有什么方法可以将这些矩形组合成一个组合的“形状”,在没有内部间隙的情况下渲染?我玩过 GeometryDrawing,它就是这样做的,但是我看不到用不同颜色的画笔绘制每个 RectangleGeometry 的方法。
有没有其他方法可以让形状在任意变换下无缝平铺,而不使用 SnapsToDevicePixels?
c++ - C++ 2D 曲面细分库?
我有一些凸多边形存储为点的 STL 向量(或多或少)。我想非常快速地对它们进行镶嵌,最好是尺寸相当均匀的碎片,并且没有“条子”。
我打算用它把一些物体炸成小块。有谁知道一个很好的库来细分多边形(将它们划分为较小的凸多边形或三角形的网格)?
我已经查看了一些我已经在网上找到的,但我什至无法编译它们。这些学术类型并没有过多考虑易用性。
rendering - 如何镶嵌贝塞尔三角形?
我关心的是二次贝塞尔三角形,我试图对其进行镶嵌以渲染它们。
我已经设法通过递归地细分三角形来实现这一点,就像在维基百科页面中描述的那样。虽然我想获得更精确的细分。问题是我会得到太少或太多的细分,因为在该算法的每次迭代中表面的数量都会翻倍。
特别是我需要一个自适应镶嵌算法,它允许我定义边缘的段数量。我不确定我是否能做到这一点,所以我也想听听统一镶嵌技术。
最难的麻烦我在计算贝塞尔曲面上的点的法线时遇到了麻烦,我不确定我是否需要,但一直在尝试解决。
geometry - 来自 qhull 的三角不规则网络
我想使用 qhull 从 3D 点(每个文件中大约 700 万个)创建 TIN。
任何人都可以建议一个我可能会看到如何做到这一点的地方吗?谢谢!
algorithm - 通过平铺三角形来镶嵌任意多边形
我需要使用近乎均匀的三角形平铺来填充任意多边形。我该怎么做?您可以提供对现有算法的参考,甚至可以提供您自己的想法或提示。
推测如下:
- 多边形可能是凸的(但如果您想出适用于凹形的算法,则可以加分)
- 多边形具有任意数量的边(3 个或更多)
- 镶嵌的数量(最好是算法添加的顶点数)应该参数化
- 多边形的边可以被算法分割
- 三角形的大小和形状应该几乎一致(即角趋向于 60 度)
- 顶点处的边数最好少而不是多。这可能会从前一点开始(即算法应该产生一个“干净的网格”)。
这不是一个容易解决的问题,我希望“启发式”解决方案可能是最有效的......(对吗?)
spatial - 试图找到将矩形镶嵌到板上的公式,其中不能使用中间正方形
我正在研究空间堆叠问题......目前我正在尝试以 2D 解决,但最终将不得不在 3D 中完成这项工作。
我将空间划分为围绕中心块的 nxn 个正方形,因此 n 总是奇数......我试图找到任何尺寸小于 nxn 的矩形(例如 1x1、1x2、2x2 等)的位置数量放置在中间正方形不可用的地方。
到目前为止,我有这个..
..还有正方形的总数= (n (n+1) (2n+1)) / 6
但是,我一直在制定一个公式来找出其中有多少是不可能的,因为中间的广场会被占用。
例如:
[] [] []
[] [X] []
[] [] []
3 x 3 板...有 8 个可能的位置用于存储东西,因为中间正方形正在使用中。我可以使用 1x1 形状、1x2 形状、2x1、3x1 等...
公式给我的矩形数量为: (9+3)^2 / 4 = 144/4 = 36 个堆叠位置 但是由于中间的正方形是不可占用的,这些都不能实现。
手动我可以看到这些是不可能的选择:
1x1 形状 = 1 个不可能(中间正方形) 2x1 形状 = 4 个不可能(任何使用中间正方形的东西) 3x1 = 2 个不可能 2x2 = 4 个不可能等等 不可能的组合总数 = 16
因此,我所追求的解决方案是 3x3 板上 36-16 = 20 个可能的矩形堆叠位置。
我已经在 C# 中对此进行了编码,以通过反复试验来解决它,但我真的很喜欢一个公式,因为我想解决大量的 n 值,并最终制作这个 3D。
谁能指出这些空间/镶嵌问题的任何公式?也非常欢迎任何关于如何将整个矩形公式转换为 3D 的想法!
谢谢!
algorithm - 正多边形的高效打包算法
我正在寻找一种打包算法,它将正多边形减少为矩形和直角三角形。该算法应尝试使用尽可能少的此类形状,并且应该相对容易实现(考虑到挑战的难度)。
如果可能,这个问题的答案应该解释建议算法中使用的一般启发式方法。
algorithm - 不规则多边形的高效打包算法
我正在寻找一种打包算法,它将不规则多边形减少为矩形和直角三角形。该算法应尝试使用尽可能少的此类形状,并且应该相对容易实现(考虑到挑战的难度)。在可能的情况下,它还应该更喜欢矩形而不是三角形。
如果可能,这个问题的答案应该解释建议算法中使用的一般启发式方法。
对于少于 100 个顶点的不规则多边形,这应该在确定的时间内运行。
目标是为外行生成不规则多边形的“合理”分解。
应用于解决方案的第一个启发式将确定多边形是规则的还是不规则的。对于正多边形,我们将使用我在关于正多边形的类似文章中概述的方法:正多边形的高效打包算法