コード例 #1
0
ファイル: main.cpp プロジェクト: hrjackson/Pearls
void explore( Plot &pl, Mobius a, Mobius b,
             Circle Ca, Circle Cb, Circle CA, Circle CB, int maxLevel){
    Mobius A = a.inverse();
    Mobius B = b.inverse();
    Mobius gens[4] = {a, b, A, B};
    int inverse[4] = {2, 3, 0, 1};
    int level = 0;
    Circle circs[4] = {Ca, Cb, CA, CB};
    for(int i=0; i<4; ++i){
        pl.circle(circs[i].centre, circs[i].radius, colScale(level, maxLevel));
        //pl.show();
        recursiveExplore(pl, gens[i], i, gens, circs, inverse, level, maxLevel);
    }
}
コード例 #2
0
ファイル: main.cpp プロジェクト: hrjackson/Pearls
void recursiveExplore( Plot &pl,
                      Mobius map,
                      int j,
                      Mobius gens[4],
                      Circle circs[4],
                      int inverse[4],
                      int level,
                      int maxLevel) {
    Circle image;
    for (int i=0; i<4; ++i){
        if(i != inverse[j]){
            image = map.circleImage(circs[i]);
            pl.circle(image.centre, image.radius, colScale(level, maxLevel));
            //pl.show();
            //cv::waitKey(0);
            if( level < maxLevel ){
                recursiveExplore(pl, map.after(gens[i]), i, gens, circs, inverse, level+1, maxLevel);
            }
        }
    }
}