Cette rot
n'est pas une fonction standard. Cela fait plutôt partie du code que vous traduisez. Vous devez simplement continuer à lire l'article auquel vous liez. Quelques lignes sur vous trouverez ceci:
//rotate/flip a quadrant appropriately
void rot(int n, int *x, int *y, int rx, int ry) {
if (ry == 0) {
if (rx == 1) {
*x = n-1 - *x;
*y = n-1 - *y;
}
//Swap x and y
int t = *x;
*x = *y;
*y = t;
}
}
Vous devez traduire cette fonction avec le code dans votre question. Je suis sûr que vous n'avez pas besoin de moi pour faire la traduction d'une fonction aussi simple. Je dirais que rx
et ry
sont vraiment des booléens et vous pouvez être mieux les coder de cette façon. Le code dans l'article est écrit dans une saveur C qui précède les types booléens C. Cela dit, la fonction dans la question effectue de l'arithmétique sur ces «booléens», il est donc un peu difficile d'écrire une traduction littérale propre.
Les paramètres passés en tant que pointeurs sont probablement meilleurs en tant que paramètres var
et donc transmis par référence. Encore une caractéristique que C manque.
La fonction 'rot' est dans l'article wikipedia. –
Je ne peux pas croire que je l'ai manqué. Puisque la question a été répondue, je n'ai pas pu la supprimer. J'ai modifié la question pour en faire la conversion de code à la place. – Ali
@Ali J'ai annulé votre édition. Il est trop tard pour poser une question différente. Vous avez déjà demandé et accepté une réponse. –