Trouver tous les points à l'intérieur d'un cercle dans l'espace 2D

Je représente mon espace 2D (envisager une fenêtre), où chaque pixel est représenté par une cellule dans un tableau 2D. c'est à dire un 100x100 fenêtre est représentée par le tableau de mêmes dimensions.

Maintenant donné un point dans la fenêtre, si je dessine un cercle de rayon r, je veux trouver tous les points situés dans le cercle.

Je pensais que je voudrais vérifier pour chaque point dans le carré de la région autour du rayon, avec side = 2*r, si elle se trouve dans le cercle ou pas. Je vais utiliser la distance normale formule peut-être?

D'où, peut-être les suivantes:

for (x=center-radius ; x<center+radius ; x++){
    for (y=center-radius ; y<center+radius; y++) {
        if (inside) {
            //Do something
        }
    }
}

Il va servir mon but? Puis-je le rendre plus rapide?

  • Pour simuler le nombre pi, un uniforme distribué des valeurs aléatoires sont générés avec le xx+yy<=rr restriction. Je pense que ça pourrait être une très bonne idée de mettre des valeurs aléatoires, puis recherche les voisins comme l'escalade la colline de l'algorithme.
  • Utiliser après le Théorème de Pythagore pour déterminer si la distance de la "cellule" est dans le cercle ou pas.
InformationsquelleAutor Kraken | 2013-04-06