Espace géométrique

Soyez le premier à donner votre avis sur cette source.

Vue 5 626 fois - Téléchargée 346 fois

Description

il s'agit ici d'un programme capable de simuler 3 formes géométriques principales: le cercle , le rectangle et le carré.... et de calculer leur surface
pour l'instant, il est encore en maintenance mais je vous donne comme même un prototype

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
52
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
23 janvier 2014

j'ai pas bien saisi le rôle de la fct random ...
mon compilateur me dit que c'est un type et non une fonction... de plus , elle n'existe pas dans ma bibliothèque MATH
-->je veux bien que vous m'expliquez d'avantage ce type, faute de quoi je ne pourrais pas avancer selon LA PROPOSITION DE LYNXTYLE
@++
Messages postés
79
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2011
2
Un point est une notion mathématiques subjective... moi pour pas m'embêter je le définirai comme un carré de taille minimum.

Techniquement l'affiche des formes géométriques ne servirons pas à grand chose (juste à faire joli... mais pour en faire un écran de veille on ne demande pas plus^^), ce qui sera intéressant se sera l'utilisation de la formule pour déterminer l'ensemble des points du contour de ta courbe (en utilisant une première aproximation de pi : celle fournis par la librairie math).

voilà une marche à suivre possible :
-tu défini un diamètre pour ton cercle de valeur X
-tu utilise la fonction random paramètré pour te fournir 2 nombres compris entre 0 et X que tu sauvegarderas dans des variables x et y
-ensuite tu calcul la longeur de la droite [centre du cercle de diamètre X ; point de coordonnées x,y]
-si la longueur de cette droite est inférieur à X/2 alors le point est dans le cercle (point_dans_le_cercle++; total++;)sinon le point ne l'ai pas (dans ce cas on a juste total++;)
-et à ce moment tu peux afficher un carré de coté X, un cercle de diametre X et un carré de coté 1(pixel) de coordonnées x,y (donc inscrit au minimum dans ton carré)

arrivé ici tu recommence tout (avec un clear d'écran entre 2 afin d'avoir un affichage sympa)... je te conseil une boucle de taille MAX_int avec quand même dans la boucle la possibilité de faire un break propre. En fin de boucle (ou break) tu propose le résultat de point_dans_le_cercle/total.... t'auras quelques chose qui avoisinera pi. Le top étant d'ensuite récupérer l'int en []char pour le sauvegarder puis de récupérer la totalité des expériences avec une bibliothèque de gestion des grands nombres pour les additionners puis faire la division : tu pourrais avoir une approximation de pi avec vraiment beaucoup de chiffre significatif... (pour ma pars je me suis amusé à le faire avec OpenCL pour le calcul GPU et GMP pour faire les additions et la division final... les résultats son bleuffant : ça fait un bon benchmark GPU d'ailleur !)

voilou t'as la marche à suivre... au boulot et bon courage
Messages postés
52
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
23 janvier 2014

-->çà veut dire en outre que je dois créer une autre structure 'point' et que mes formes géométriques seront formées par des point et non pas par des entiers??
-->et donc si c'est le cas, je dois changer les paramètres des méthodes de telle sorte à ce qu'elles soient applicables pour des points??
-->merci pour les consignes, gvé voir ce que je pourrais faire..
@++
Messages postés
79
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2011
2
De rien.

Bon pour la proposition que je t'ai faite :
-tu te place dans un carré de taille X de coté
-tu inscrit un cercle dans ce carré de diamètre X
-tu créé une bloucle (très grande ou infini qui s'arrête à l'appuis d'une touche pourquoi pas) avec un random() pour obtenir des coordonnées de point inscrit dans le carré (donc avec des coordonnées x,y compris entre [0;X]) et tu vérifi s'ils sont inscrit aussi dans ton cercle... ceci permettant d'incrémenter 2 compteurs : incrist_dans_cercle / total
-avec ces 2 valeurs tu peux alors en déduire une valeur approché de pi (plus tu fera d'essai plus ta valeur de pi sera précise... de plus avec cette méthode tu peu, si ton random() est vrai, en déduire une certaine certitude sur le nombre de chiffre significatif à retenir (loi de proba)
-enfin pour donner un réel interet récupère ces valeur soit avec une librérie de traitement des grands nombres (supérieur à MAX_int) soit en récupérant les résultat sous forme d'un []char afin de traiter une infinité de teste (tu rajoute un enregistrement/lecture fichier pour pouvoir stopper et reprendre les testes et c'est parfait... voir même rajouter une connexion à une DB SQL pour faire les testes sur un réseau d'ordinateur...)

enfin bon il y a beaucoup de possibilité de codes facils et sympas à faire en rapport avec les maths...

après tu fais ce que tu veux de mes dires... même si tu les prends pour des insultes, quand un code proposé n'est même plus corrigeable alors qu'il se trouve sur une plateforme de partage, il ne faut pas s'attendre à des éloges. (tu as le forum pour demander de l'aide et des conseils et beaucoup de doc sur internet... et pour le le Visual_C# tu as le site de Microsoft MSDN pour les développeurs...)

Les grandes ligne pour la correction de ce code actuel :
-revoir ta découpe de fichier
-éviter le copier/coller d'autre sources sans comprendre tout le code inscrit (il y a un minimum avant de venir poster ici)
-regarder le travail déjà proposé ici (tu n'aurais peut être pas mis Initié si tu voyais le travail juste de niveau débutant)
-commenter tes sources
-proposer des sources avec un minimum d'intérêt (avec un contexte minimum)
-utiliser les spécifications du langage utilisé (même si le C ou le C++ sont toléré dans du C# il est conseillé de rester exclusivement en C# quand on développe C#... et d'utilise du C quand on travail en C [cf. une autre de tes sources]...)
-on ne publie que du code un minimum fini : ce n'est pas parce que ça compile que c'est bon... on le nettoie, on le commente, on regarde si on ne peut pas l'optimiser un peu, on fait attention à la découpe du code (je ne met pas le triangle dans le main et le cercle et le carré à part), on lui donne un contexte d'utilisation si celui-ci n'est pas explicite, etc... et enfin on le publie en hésitant pas à demander conseil pour l'optimisation du code (sans se faire passer pour monsieur je sais tout mieux que tout le monde et qui à toujours raison sur tout)

Pour ma part je pense que si tu suis ces conseils et que tu tente un code comme celui que je t'ai proposé, tu auras des remarques positives quand tu le plubiras. (j'attends avec impatience ton prochain post "recherche de pi par la simulation" et n'hésite pas à demander conseil !)
Messages postés
52
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
23 janvier 2014

merci pour la reponse .. j'essayerais d'ameliorer ce programme dès que possible ..
merci encore une fois
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.