4

これは、MandelBrot セットを表す配列をセットアップする方法の疑似コードですが、アスペクト比 1:1 のままにしておくと、ひどく引き伸ばされます。

xStep = (maxX - minX) / width;
yStep = (maxY - minY) / height;

for(i = 0; i < width; i++)
 for(j = 0; j < height; j++)
  {
   constantReal = minReal + xStep * i;
   constantImag = minImag + yStep * j;
   image[i][j] = inSet(constantReal, constantImag);
  }

ありがとう!

4

3 に答える 3

7

これは、MandelBrot セットを表す配列をセットアップする方法の疑似コードですが、アスペクト比 1:1 のままにしておくと、ひどく引き伸ばされます。

xStep = (maxX - minX) / width;
yStep = (maxY - minY) / height;

あはは!これは、描画するイメージと、描画する複雑な平面の領域の両方で同じ縦横を維持する必要があるためです。言い換えれば、それを保持する必要があります

 width     maxX - minX
---------- = ---------------------
 height    maxY - minY

(xStep == yStep となります。) あなたのコードは、おそらくこの要件を強制していません。

于 2008-11-26T05:19:25.883 に答える
0

キャストがすべて正しいことを確認してください。xStepとyStepは、予想される浮動小数点除算ではなく整数除算の積である可能性があります(サンプルのC#の場合、正しく機能するには明示的なキャストが必要になります)。

于 2008-11-26T04:45:57.433 に答える
0

おそらく、image配列の表示方法に関係しています。幅変数 i を最初のインデックスとして使用しますが、通常は最初のインデックスが最も変化の遅いインデックス、つまり高さになります。

最後の行をimage[j][i] =...に変更してみてください

于 2008-11-26T04:38:46.543 に答える