2011-04-18 9 views
0

私は以下のコードを持っています。私は自分のコードにズームを挿入する方法を知りたがっています。私のコードをズームインする方法(mandelbrot)

GLsizei width = 600; 
GLsizei height = 600; 
int max = 500; 
double xpos=0,ypos=0; 

double xmax = 2.0; 
double xmin = -2.0; 
double ymax = 2.0; 
double ymin = -2.0; 

using namespace std; 

void display() 
{ 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluOrtho2D(-2, width, -2, height); 
    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
    glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT); 
    mandelbrot(); 
    glutSwapBuffers(); 
} 


void reshape(GLsizei w, GLsizei h) { 

width=w; height=h; 
glViewport(0,0,width,height); 
glutPostRedisplay(); 
} 



void setXYpos(int px, int py) 
{ 
xpos=xmin+(xmax-xmin)*px/width; 
ypos=ymax-(ymax-ymin)*py/height; 

} 



    void mandelbrot() 
    { 
    ...} 

    int main(int argc, char *argv[]) 
{ 

glutInit(&argc, argv); 
glutInitWindowSize(600, 600); 
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); 
glutCreateWindow("Mandelbrot"); 
glutDisplayFunc(display); 
glutReshapeFunc(reshape); 
glutMainLoop(); 

return 0; 
} 

答えて

1

このようにズームインするには不十分です。選択した領域のコーナーを複合平面の点にマッピングし、新しい座標のマンデルブロ写像を再生成する必要があります。

関連する問題