近日在网上看到一生成分形图形delphi程序,生成图形非常漂亮,所以改成了c++,并提高了生成效率.
代码如下(原来的代码使用复数运算,考虑到效率,去掉了,但仍然保留在注释中)
//此函数用来获取颜色,s在[0,1]之间,且颜色是连续的
COLORREF GetColor(double s)
{
int r,g,b;
if(s<=0.25)
{
g=int(255*s/0.25);
return RGB(0,g,255);
}
else if(s>0.25&&s<=0.5)
{
b=255-int(255*(s-0.25)/0.25);
return RGB(0,255,b);
}
else if(s>0.5&&s<=0.75)
{
r=int(255*(s-0.5)/0.25);
return RGB(r,255,0);
}
else
{
g=255-int(255*(s-0.75)/0.25);
return RGB(255,g,0);
}
}
/
// CMyView drawing
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
complex<f
代码如下(原来的代码使用复数运算,考虑到效率,去掉了,但仍然保留在注释中)
//此函数用来获取颜色,s在[0,1]之间,且颜色是连续的
COLORREF GetColor(double s)
{
int r,g,b;
if(s<=0.25)
{
g=int(255*s/0.25);
return RGB(0,g,255);
}
else if(s>0.25&&s<=0.5)
{
b=255-int(255*(s-0.25)/0.25);
return RGB(0,255,b);
}
else if(s>0.5&&s<=0.75)
{
r=int(255*(s-0.5)/0.25);
return RGB(r,255,0);
}
else
{
g=255-int(255*(s-0.75)/0.25);
return RGB(255,g,0);
}
}
/
// CMyView drawing
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
complex<f