Graphes de noeud en php en utilisant svg
Résolu/Fermé
Onizuka95
Messages postés
6
Date d'inscription
samedi 4 mars 2017
Statut
Membre
Dernière intervention
5 mars 2017
-
Modifié par jordane45 le 4/03/2017 à 03:02
jordane45 Messages postés 38397 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 janvier 2025 - 4 mars 2017 à 14:06
jordane45 Messages postés 38397 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 janvier 2025 - 4 mars 2017 à 14:06
A voir également:
- Graphes de noeud en php en utilisant svg
- Adobe svg viewer - Télécharger - Divers Web & Internet
- Easy php - Télécharger - Divers Web & Internet
- Notice d'utilisation en français - Guide
- Juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- En n'utilisant que le clavier, quel mot obtenez-vous ? ✓ - Forum Clavier
3 réponses
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
4 mars 2017 à 03:17
4 mars 2017 à 03:17
Bonjour,
Je n'ai pas regardé le code ... mais ta question ressemble plus à un problème de math qu'autre chose...
Je pense qu'il faut que tu détermine, avant de commencer, combien de cercles tu vas devoir dessiner.
De là ... tu peux faire une simple division : 360° / N cercles
=> ce que tu fais déjà visiblement:
Dans ce cas... se sont les coordonnées X et Y de tes points que tu dois calculer...par rapport à ton premier points (le bleu)....
Si je ne me trompe pas ...
En partant du principe que ton cerlce bleu est le "centre" d'un autre cercle (fictif... mais qui servira à positionner les autres noeuds...)
tu peux calculer les coordonnées de chaque noeud via la formule :
(x0,y0) sont les coordonées du centre (le cercle bleu)
, r est le rayon (du cercle fictif où tu vas placer tes points) ,
et t l'angle (en radian) de chaque noeud à positionner.
Ce ne sont que des maths... je le répète.... rien à voir avec du code PHP à proprement parlé....
Bonnes recherches :-)
Je n'ai pas regardé le code ... mais ta question ressemble plus à un problème de math qu'autre chose...
Je pense qu'il faut que tu détermine, avant de commencer, combien de cercles tu vas devoir dessiner.
De là ... tu peux faire une simple division : 360° / N cercles
=> ce que tu fais déjà visiblement:
$degre = 360/$nb_nodes;
Dans ce cas... se sont les coordonnées X et Y de tes points que tu dois calculer...par rapport à ton premier points (le bleu)....
Si je ne me trompe pas ...
En partant du principe que ton cerlce bleu est le "centre" d'un autre cercle (fictif... mais qui servira à positionner les autres noeuds...)
tu peux calculer les coordonnées de chaque noeud via la formule :
x = x0 + r*cos(t)
y = y0 + r*sin(t)
(x0,y0) sont les coordonées du centre (le cercle bleu)
, r est le rayon (du cercle fictif où tu vas placer tes points) ,
et t l'angle (en radian) de chaque noeud à positionner.
Ce ne sont que des maths... je le répète.... rien à voir avec du code PHP à proprement parlé....
Bonnes recherches :-)
yg_be
Messages postés
23449
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
Ambassadeur
1 564
Modifié par yg_be le 4/03/2017 à 13:18
Modifié par yg_be le 4/03/2017 à 13:18
bonjour, je suggère ceci, pour calculer les centres de tes cercles rouges:
$rayon=40; $degre=2*pi()/$nb_nodes; for($i=0;$i<$nb_nodes;$i++) { $pos_x_suc[$i] = $pos_x + $rayon * cos($i*$degre); $pos_y_suc[$i] = $pos_y + $rayon * sin($i*$degre); }
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
4 mars 2017 à 14:06
4 mars 2017 à 14:06
Une jolie interprétation de la formule proposée dans ma réponse précédente....
Onizuka95
Messages postés
6
Date d'inscription
samedi 4 mars 2017
Statut
Membre
Dernière intervention
5 mars 2017
4 mars 2017 à 14:01
4 mars 2017 à 14:01
4 mars 2017 à 12:35
Merci pour ta réponse.
En effet, tu as raison ce ne sont que des maths lol.
Je vais tester la formule que tu m'as proposé, sinon je vais m'orienté vers un forum de maths :-)