循环语句深化练习:分形图
<span style="font-size:14px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 流程控制
{
class Program
{
static void Main(string[] args)
{
//循环语句深化练习,分形图(factal)
double x0, y0; //原始点坐标
double x1, y1; //Z(n-1)的实部和虚部
double x2, y2; //Z(n)的实部和虚部
double NN; //横的平方
int n; //记录迭代次数
//用双层for语句遍历所有点
for(y0 = 1.2; y0 >= -1.2; y0 -= 0.05)
{
for(x0 = -0.6; x0 <=1.77; x0 += 0.03)
{
//对于点(x,y),用下面的代码记录迭代次数
n = 0;
x1 = x0;
y1 = y0;
NN = x1 * x1 + y1 * y1;
//当模的平方小于4且迭代的次数小40时进行迭代
while( (NN < 4) && (n < 40) )
{
//由z1的实部和虚部计算z2的实部和虚部
x2 = (x1 * x1) - (y1 * y1) - x0;
y2 = (2 * x1 * y1) - y0;
//计算z2的模的平方
NN = (x2 * x2) + (y2 * y2);
//记录迭代次数
n++;
//为下次迭代做准备
x1 = x2;
y1 = y2;
}
//由于当前所学知识有限,我们输出字符代表输出颜色
switch(n%4)
{
case 0: Console.Write("."); break;
case 1: Console.Write("o"); break;
case 2: Console.Write("O"); break;
case 3: Console.Write("@"); break;
}
}
}
}
}
}
</span>
运行结果: