分形fractal

转载 2012年03月29日 18:29:15
#include "cv.h"
#include "highgui.h"

const int image_w = 100;
const double a =0.0;
const double b =0.0;
const long Nmax = 255; //Z值衰减(趋向于零) 的临界
const double Rmax = 20; // Z值没有界限地增加(趋向无穷)的临界

IplImage* image =0;
int c_r_value = 60;
int c_i_value = 40;

//返回迭代的次数
int getnum(int i,int j)
{
    double C_RealPart = (double)(c_r_value-50)/100*2*2; //-2 到 +2 //Julia 集合 常数C
    double C_ImagPart = (double)(c_i_value-50)/100*2*2; // -2 到 +2 //Julia 集合 常数C
    double RealPart = (double)i/image_w+a; 
    double ImagPart = (double)j/image_w+b;
    int n=0;
    while(n<Nmax)
    {
        //Z=Z*Z+C;
        double ZM = RealPart*RealPart + ImagPart*ImagPart;
        if(ZM>Rmax) break;
        double temp_RealPart = RealPart*RealPart - ImagPart*ImagPart+C_RealPart;
        double temp_ImagPart = 2*ImagPart*RealPart+C_ImagPart;
        RealPart= temp_RealPart;
        ImagPart= temp_ImagPart; 
        n++;
    }
    return n;
}
void onChangeimg(int pos)
{
    cvZero(image);
    for(int i =0;i<image_w;i++)
        for(int j =0;j<image_w;j++)
        {
            int n1 = getnum(i,j);
            int n2 = getnum(j,i);
            int n3 = getnum(j,i/2);
            //printf("%d,",n);

            CvScalar sc1;
            if(n1>Nmax-2) n1=0;
            if(n2>Nmax-2) n2=0;
            if(n3>Nmax-2) n3=0;

            sc1.val[0] = (int)abs(255*(float)n1/Nmax);
            sc1.val[1] = (int)abs(255*(float)n2/Nmax);
            sc1.val[2] = (int)abs(255*(float)n3/Nmax);
            cvSet2D(image,i,j,sc1);

        }

    double nvalue = cvNorm(image,0,CV_C);

    for(int i =0;i<image_w;i++)
        for(int j =0;j<image_w;j++)
        {
            CvScalar sc1;
            CvScalar sc2 =cvGet2D(image,i,j);
            sc1.val[0] = (int)abs(255*sc2.val[0]/nvalue);
            sc1.val[1] = (int)abs(255*sc2.val[1]/nvalue);;
            sc1.val[2] = (int)abs(255*sc2.val[2]/nvalue);;
            cvSet2D(image,i,j,sc1);
        }

}
int main( int argc, char** argv )
{

    cvNamedWindow( "WIN", 0 );
    cvCreateTrackbar( "C real", "WIN", &c_r_value, 100, onChangeimg );
    cvCreateTrackbar( "C imag", "WIN", &c_i_value, 100, onChangeimg );

    image = cvCreateImage( cvSize(image_w,image_w), 8, 3 );
    onChangeimg(0);

    for(;;)
    {

    cvShowImage("WIN",image);
    if(cvWaitKey(40)==27) break;
    }
    return 0;

} 
 

POJ 2083 Fractal(分形题目)

题目网址:http://poj.org/problem?id=2083下面跟大家简单的介绍下分形,分形换句话说就是递归打印,把基本的图形设置好,下面就是利用递归的方法把图形打印在相应的地图中,然后再按...
  • qq_32866009
  • qq_32866009
  • 2016年04月17日 21:45
  • 448

hihoCoder 1234 Fractal——ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛

H Fractal——ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛
  • queuelovestack
  • queuelovestack
  • 2015年09月20日 19:42
  • 1477

分布式系统阅读笔记(八)-----分布式对象和组件

一、介绍 在分布式系统中,一个完整的中间件需要展现一定的对于上层程序语言的以及底层的物理设施的抽象性。而分布式对象和分布式组件恰恰是2种重要的实现方式。 1、分布式对象包集成了面向对象的语言的特征...
  • Androidlushangderen
  • Androidlushangderen
  • 2014年12月29日 09:41
  • 1668

[深度学习]暴走的残差深度学习网络家族!加深了网络还是隐式多网络叠加?

在2015年残差网络Deep Residual Learning for Image Recognition出来之后,2016年出现了大批量的达到与之相应效果的加深网络的方法。加深网络会带来如下三大类...
  • sunbaigui
  • sunbaigui
  • 2016年06月17日 21:22
  • 14674

leveldb和rocksdb在大value场景下的一些问题

Table of Contents 1   问题 1.1   compaction不可控. 1.2   写放大 1.3   其它问题 2   小结 Leveld...
  • weixin_36145588
  • weixin_36145588
  • 2017年11月05日 16:56
  • 246

poj3845 Fractal 【坐标变换】

题目大意:给一条折线,每一次操作把这条折线的所有线段变换成跟这条折线的相同形状,重复d次。问此时从头到尾走全长的f(0≤f≤1),将停在哪个点上。解题思路:假设做了一次分形后得到折线长度是原来的kk倍...
  • cdsszjj
  • cdsszjj
  • 2017年12月22日 08:45
  • 52

Fractal自相似图形

Fractal Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB   Problem descript...
  • Victory_fei
  • Victory_fei
  • 2015年01月08日 16:33
  • 72

Fractal (分形)

A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on ...
  • qq_30591245
  • qq_30591245
  • 2017年04月18日 17:49
  • 180

1085:Fractal(分治法)

1085:Fractal 查看 提交 统计 提问 时间限制:  1000ms   内存限制:  65536kB 描述 A fractal is an ob...
  • L_Jsword
  • L_Jsword
  • 2013年11月13日 13:07
  • 417

对CS106B课程(抽象编程)的笔记与思考1

//**********引子*********** 要开始静下心来学计算机了。经历了许多计算机方面无谓的尝试比如操作系统,各种开发环境的配置,各种软件的测试之后,觉得应该从最最基本的内容开始,有计划地...
  • u013745595
  • u013745595
  • 2014年11月29日 20:58
  • 932
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分形fractal
举报原因:
原因补充:

(最多只允许输入30个字)