1

我正在为学校做一个项目,需要大致重现这个分形(在 BGI 中):

在此处输入图像描述

我一直试图为中等大小的三角形寻找放置逻辑,因为它们必须被绘制到 for/while 循环中。(我画了主要的三角形和它的每一边的一个圆圈。)

任何想法表示赞赏!

4

1 回答 1

0

绝对是IFS。IFS 分形使用递归。它就像一个树结构,其中每个分支都可以有侧分支,而这些分支又可以有自己的较小侧分支。在(C-like)伪代码中,它看起来像:

draw_triangle(vector2d pos, float scale, int depth)
{
  if (depth < MAX_DEPTH) return;

  /* actual graphics code for the triangle goes here.. use pos and scale */

  /* compute center positions for circles side1_pos, side2_pos, etc... */

  draw_circle(side1_pos, 0.5*scale, depth+1);
  draw_circle(side2_pos, 0.5*scale, depth+1);
  draw_circle(side3_pos, 0.5*scale, depth+1);
}

draw_circle(vector2d pos, float scale, int depth)
{
  if (depth < MAX_DEPTH) return;
  /* actual graphics code for the circle goes here.. use pos and scale */

  /* compute center positions for triangles side1_pos, side2_pos, etc... */

  draw_triangle(side1_pos, 0.5*scale, depth+1);
  draw_triangle(side2_pos, 0.5*scale, depth+1);
  draw_triangle(side3_pos, 0.5*scale, depth+1);
}
于 2013-03-26T08:35:22.320 回答