Trouver les coordonées de points sur un cercle

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour/Bonsoir,

Je cherche à obtenir les coordonnées de points sur un cercle de rayon donnée. En fait, je souhaite obtenir une forme d'abord sphérique constituée de points reliées les uns aux autres:

Image utilisateur

Il ne me reste plus qu'a déplacer certains de ces points pour obtenir des "déformations" un peu comme un œuf au plat, ou du slime. gif exemple

Voici les informations constantes auquel j'ai accès: rayon de base du cercle, largeur du plan (600 pixels), hauteur du plan (600 pixels), nombre de points ( de segmentations ) que je souhaite sur mon cercle.

Comment obtenir les coordonées X et Y de chaque point ? En faisant des recherche je suis tombé sur cet algorithme mais je ne suis pas sur que c'est ce qu'il me faut: https://fr.wikipedia.org/wiki/Algorithme_de_trac%C3%A9_de_cercle_d'Andres

Merci d'avance :)

Édité par jerkoco

+0 -0

Cette réponse a aidé l’auteur du sujet

Salut,

Je suis pas sûr d'avoir tout compris. Si tu veux juste $k$ points sur ton cercle, je propose les $(cos(\frac{2j\pi}{k}), sin(\frac{2j\pi}{k}))$ (pour tout $0 \le j < k$) ?

Cependant on dirait que tu as imposé un certain quadrillage (et donc que tu ne considères que les coordonnées de la forme $(nc, mc)$ pour un certain réel $c$ fixé). Dans ce cas ça revient à chercher les solutions entières de $n^2+m^2 = p$, à trouver un entier $p$ assez grand pour lequel on a au moins $k$ solutions entières. Tu peux déjà regarder algorithmiquement ce que ça donne.

Auteur du sujet

Mon niveau est assez faible en Maths (je suis au lycée), et je ne suis pas sur d'avoir bien compris comment me débrouiller avec ça :'(

J'ai fais un "schéma" en code, je ne sais pas trop comment le compléter:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
var largeurPlan = 600;
var hauteurPlan = 600;
var rayonCercle = 100;
var nombreDePoints = 10;

var centreCercle = {
    x: 350,
    y: 350
};

/*
doit contenir une liste de { x: number, y: number } répartis équitablement sur le cercle
*/
var points = [];

// enregistrement des coordonnées de chaque point
for (var i = 0; i < nombreDePoints; i++) {
    points[i] = "?"; // algorithme à compléter 
}

(c'est du javascript, j'utilise l'API canvas pour le dessin) Voici le sens des axes du plan (si jamais un calcul change ?): sens des axes

Si vous auriez la possibilité de m'aider un peu plus à partir de là, ça m'aiderait beaucoup ! Merci d'avance et désolé d'en demander autant, je suis vraiment perdu..

Édité par jerkoco

+0 -0

Cette réponse a aidé l’auteur du sujet

Bonsoir,

Tu es au lycée, tu as donc sûrement déjà fait un petit peu de trigonométrie, au moins le début. La façon sans doute la plus simple de placer un certain nombre de points à égale distance les uns des autres sur un cercle, c'est de choisir leur position sous forme d'angle.

Tous les points qui sont sur le bord du cercle ont la forme: x+rcos(a); y+rsin(a), avec x;y le centre, r le rayon, et a un angle entre 0 et 2pi. Si tu prends le cercle avec x=0, y=0 et r=1, alors tu retrouves cos(a); sin(a). Si tu fais courir a de 0 à 2pi, tu dessines le cercle trigonométrique.

Pour placer tes points au bord du cercle, il te faut maintenant choisir n valeurs de a comprises entre 0 et 2pi. Le plus simple est bien sûr 0, 2pi/n, 22pi/n, 32pi/n, 42pi/n, …, (n-1)2pi/n.

Si tu appliques la même chose en 3D sur une sphère, tu placeras des points qui se trouveront tous sur un équateur avec cette technique.

C'est exactement ce que Lucas84 a déjà dit dans la première partie de son message, mais c'est peut-être plus simple à comprendre de cette façon.

Edit: j'aimerais bien que cet imbécile de markdown n'interprète pas mes astérisques comme du gras

Édité par QuentinC

Ma plateforme avec 23 jeux de société classiques en 6 langues et 13000 joueurs: http://qcsalon.net/ | Apprenez à faire des sites web accessibles http://www.openweb.eu.org/

+0 -0
Auteur du sujet

Merci pour tout, j'ai réussi ce que je souhaitais faire grâce à vous…

Voici un petit aperçu de la génération "d’œufs" avec le tracé des points:

Image utilisateur

Image utilisateur

Image utilisateur

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte