我尝试创建如下图所示的图像作为网站的随机背景,但经过多次尝试后,我找不到能够完成工作的算法。
程序应该做什么?
它应该能够用三 Angular 形随机填充一个平面。这些三 Angular 形应该都是独立的,所以我不想简单地在 Canvas 上绘制长线并为创建的三 Angular 形上色。
到目前为止我尝试过的算法:
1.
- 制作随机点
- 建立长度低于特定值的随机连接(这可能会导致三 Angular 网出现孔洞)
- 试着找出什么连接构成三 Angular 形(我在这里失败了)
2.
3.
- 做随机点
- 建立所有可能的联系(每个点都相互联系)
- 按长度对连接进行排序
- 对于以最短绘制开始的每个连接,如果它不与任何其他绘制的线相交。否则删除连接。
这实际上是我最好的尝试,即使程序花了很长时间才完成,但只得到了几个点。结果是这样的:
我没有找到一种方法来找出是什么连接构成了一个三 Angular 形,因此我无法独立地为它们着色......
希望您知道如何创建像第一张图片那样的漂亮的三 Angular 形填充 Canvas ,并告诉我...
最佳答案
一个好的解决方案是从随机点开始(使用您的首选分布)并应用一些 triangulation算法。其中,Delaunay 三 Angular 剖分是一个很好的候选者,因为它具有较低的计算复杂性和代码可用性。
关于javascript - 用三 Angular 形填充平面(三 Angular 测量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44912923/