私は学校向けのプロジェクトを行っており、このフラクタルを(BGIで)大まかに再現する必要があります。
中型の三角形はfor/whileループに描画する必要があるため、配置ロジックを見つけようとして立ち往生しています。(メインの三角形とその両側に円を描きました。)
どんなアイデアでも大歓迎です!
間違いなくIFSです。IFSフラクタルは再帰を使用します。これはツリー構造のようなもので、各ブランチはサイドブランチを持つことができ、これらはさらに小さなサイドブランチを持つことができます。(Cのような)擬似コードでは、次のようになります。
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);
}