2011-04-18 51 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

僅僅這樣放大是不夠的;必須將選定區域的角點映射到複平面中的點,並重新生成新座標的Mandelbrot映射。