2011-04-18 2 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 매핑을 다시 생성해야합니다.