/* Primero circunferencia, tras la transformación de Yukovski el perfil */ int perfil(float * dperfil, float * opc, float * opp, float * opf) { int i; // Matriz Nx2 que almacenará los puntos de la circunferencia float ** circunferencia; circunferencia = (float **) malloc(N * sizeof(float *)); // Reserva de memoria para cada vector for (i=0; i < N; i++) { circunferencia[i] = (float *) malloc(2 * sizeof(float)); // Reserva de memoria para las dos coordenadas del vector } // Toma de datos para el perfil do { datos_perfil (dperfil); } while (limites(dperfil) == 0); // Calcula los puntos de la circunferencia matriz_circunferencia(dperfil, circunferencia); // Guarda los puntos de la circunferencia en el archivo pts_circunferencia.dat if (imprimir_circunferencia(circunferencia)) // Si la apertura falla vuelve al menú menu(0, dperfil, opc, opp, opf); // Imprime la circunferencia con GNU Plot plotc(dperfil, opc); // Aplica la transformación de Yukovski a los puntos de la circunferencia para obener los del perfil transformacion_yukovski(dperfil, circunferencia); // Guarda los puntos del perfil en el archivo pts_perfil.dat if (imprimir_perfil(circunferencia)) // Si la apertura falla vuelve al menú menu(0, dperfil, opc, opp, opf); // Imprime el perfil con GNU Plot plotp(dperfil, circunferencia, opp); return 0; }
/* Límites para el cálculo del flujo complejo en el perfil */ int limites_imaginario(float *dperfil) { if (limites(dperfil)==0) return 0; if (dperfil[0]<=0) { printf("\033[31mValores no válidos (Xc<=0)"); printf("\033[0m\n"); return 0; } if (dperfil[0]<0) { printf("\033[31mValores no válidos (Yc<0)"); printf("\033[0m\n"); return 0; } return 1; }
int main() { initscr(); start_color(); init_pair(1, COLOR_GREEN, COLOR_BLACK); init_pair(2, COLOR_BLUE, COLOR_BLACK); init_pair(3, COLOR_RED, COLOR_BLACK); init_pair(4, COLOR_YELLOW, COLOR_BLACK); init_pair(5, COLOR_WHITE, COLOR_BLACK); int x =37; int y =22; int t; curs_set(0); keypad(stdscr, TRUE); noecho(); //attron(COLOR_PAIR(1)); //attroff(COLOR_PAIR(1)); while (1) { attron(COLOR_PAIR(5)); nave(x,y); attroff(COLOR_PAIR(5)); attron(COLOR_PAIR(1)); limites(); attroff(COLOR_PAIR(1)); attron(COLOR_PAIR(2)); mon1(22,4); attroff(COLOR_PAIR(2)); attron(COLOR_PAIR(3)); mon2(12,4); attroff(COLOR_PAIR(3)); attron(COLOR_PAIR(4)); mon3(50,4); attroff(COLOR_PAIR(4)); attron(COLOR_PAIR(1)); mvprintw( 2,8,"puntaje:0 "); attroff(COLOR_PAIR(1)); t = getch(); switch(t){ case KEY_DOWN: (y<25) ? y++: 0; clear(); break; case KEY_UP: (y>4) ? y--: 0; clear(); break; case KEY_LEFT: (x>3) ? x--: 0; clear(); break; case KEY_RIGHT: (x<70) ? x++: 0; clear(); break; } refresh(); } endwin(); return 0; }