【问题标题】:How can I create a Sierpinski triangle (fractal)? [closed]如何创建谢尔宾斯基三角形(分形)? [关闭]
【发布时间】:2015-09-07 06:41:20
【问题描述】:

我需要用 PHP 编写一个谢尔宾斯基三角形,它会给出以下图像输出:

我真的不知道从哪里开始,所以欢迎任何形式的算法或想法。

【问题讨论】:

  • 开始了解php图片库。
  • 试试画布,这里有一个例子:jsfiddle.net/HEWkZ/3
  • 谢谢兄弟,我会读的
  • 我建议先学习和理解谢尔宾斯基算法然后花时间使用 PHP 图形库。语言和图形库将来可能会发生变化,但算法保持不变。
  • 我看不出这个问题有什么太宽泛的地方。

标签: php algorithm fractals


【解决方案1】:

给定外三角形的顶点坐标,你可以很容易地找到大空三角形的顶点坐标(它们是边的中点)。

所以从外三角形,你可以构建三个非空的大三角形。

谢尔宾斯基三角形是通过多次递归地重复此过程获得的。当您达到所需的递归深度时,您只需绘制三角形。

在伪代码中:

Sierpinski(P, Q, R, Depth):
    if Depth == Limit:
        Line(P, Q); Line(Q, R); Line(R, P)
    else:
        PQ= (P + Q) / 2; QR= (Q + R) / 2; RP= (R + P) / 2;
        Sierpinski(P, PQ, RP, Depth + 1);
        Sierpinski(Q, QR, PQ, Depth + 1);
        Sierpinski(R, RP, QR, Depth + 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多