C#关于Mandelbrot图像的问题
C#关于Mandelbrot图像的问题书上说图像中的每个位置用参数N来表示,它是x*x+y*y的平方根。如果这个值大于或等于2,那么这个数字对应的位置值是0。如果参数N的值小于2,就把N的值改为N*N-N,即N=(x*x-y*y-x)+(2*x*y-y)*i),并再次测试这个新N值。如果这个值大于或等于2,则这个数字对应的位置值是1.这个过程将一直继续下去,直到给图像中的位置赋一个值,火迭代执行的次数超过指定的次数为止。
这个图像是纯文本字符的形式
我想问的是1)它里面所说的位置是什么意思?
2)位置值只有0和1吗?位置值会有2,3,4,5......吗?
3) 程序中 for(imagCoord=1.2;imagCoord>=-1.2 ;imagCoord-=0.05)
{
for(realCoord=-0.6;realCoord<=1.77;realCoord+=0.03)
{
请问这里的数字1.2 -1.2 0.05 -0.6 1.77 0.03 这些小数代表什么 这些数字从何而来? 谢谢
这个图像是纯文本字符的形式
程序是这样的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
double realCoord, imagCoord;
double realTemp, imagTemp, realTemp2, arg;
int iterations;
for (imagCoord = 1.2; imagCoord >= -1.2; imagCoord -= 0.05)
{
for (realCoord = -0.6; realCoord <= 1.77; realCoord += 0.03)
{
iterations = 0;
realTemp = realCoord;
imagTemp = imagCoord;
arg = (realCoord * realCoord) + (imagCoord * imagCoord);
while ((arg < 4) && (iterations < 40))
{
realTemp2 = (realTemp * realTemp) - (imagTemp * imagTemp)
- realCoord;
imagTemp = (2 * realTemp * imagTemp) - imagCoord;
realTemp = realTemp2;
arg = (realTemp * realTemp) + (imagTemp * imagTemp);
iterations += 1;
}
switch (iterations % 4)
{
case 0: Console.Write("."); break;
case 1: Console.Write("o"); break;
case 2: Console.Write("O"); break;
case 3: Console.Write("@"); break;
}
}
Console.Write("\n");
}
Console.ReadKey();
}
}
}
[ 本帖最后由 weikeli19 于 2015-5-4 14:16 编辑 ]