Re: [Gambas-user-fr] Recursivite en gambas3
Brought to you by:
gambas
From: Pierre H. <pie...@gm...> - 2018-09-18 21:56:21
|
Merci Fabien en effet, mon probleme de rhombo fait partie d'un de mes projets. Je ne vias pas entrer dans le détail du Rhmbo, sauf que a partir d'un formulaire dans le quel je present les differents parametres du rhombo, je voudrai a partir seulement de 2 parametres calculer les autres et eventuellement signaler les erreurs.. ci-dessous. La recursivité dans le cas où l'arete la fonction que j'ai developpée qui me parait un peu 'lourde' ne fonctionne pas dans tous les cas... Y aurait-il une solution ? je voie pas très bien avec mes 75 printemps! 'CALCUL ROMBO EN FONCTION DE AU MOINS 2 6 PARAMETRES DEFINIS CI-DESSOUS '1 Arete (les 4 aretes du rombo ont toutes la meme dimension) '2 Rayon du cercle inscrit dans le rombo '3 D1 premiere diagonale ( les diagonales sont perpendiculaires dans un rombo) '4 D2 deuxieme diagonale '5 Alpha angle diagonale 1 avec arete '6 Beta angle diagonale 2 avec arete '7 perimetre (resultat) '8 surface (resultat) '9 centre de gravite (resultat) Public Function RomboCalcul() As Integer Dim err As Integer If arete > 0 Then If d1 > 0 Then 'calcul des angles a partir de D1 et arete alpha = 2 * ASin(d1 / (2 * arete)) beta = 2 * ACos(d1 / (2 * arete)) Else If d2 > 0 Then 'calcul des angles a partir de D2 et arete alpha = 2 * ACos(d2 / (2 * arete)) beta = 2 * ASin(d2 / (2 * arete)) Endif 'ici les angles ont été calculés a partir de l'arete et d'une des deux diagonales 'on calcule le rayon inscrit dans le rombo ' rayon = Sqr(((d1 / 2) ^ 2) + ((d2 / 2) ^ 2)) '1) pythagore facile pais ' rayon = (arete / 2) * Sin(alpha) '2) rayon = (arete / 2) * Sin(beta) '3) perimetre = arete * 4 'un rombo a ses 4 cotes egaux surface = (arete ^ 2) * Sin(alpha) 'calcul de la surface methode 1 'ou surface=arete^2*sin(beta) 'gravite=d2/2 ' gravite = arete * Cos(alpha / 2) 'cette methode on ne sait pas si on a d1 ou d2 'calculer la diagonale eventuellement manquante If d1 > 0 And d2 = 0 Then 'calculer d2 a ce niveau on a alpha et beta calculés d2 = 2 * Cos(alpha / 2) 'd2=2 sin(beta/2) 'autre methode Else If d1 = 0 And d2 > 0 Then 'calculer d1 a ce niveau on a alpha et beta calculés d1 = 2 * arete * Sin(alpha / 2) 'd1=2*arete*cos(beta/2) 'autre methode Endif Else 'ici l'arete n'est pas définie 'dans ce cas, il nous faut au moins 2 diagonales 'ou une diagonale et un angle 'tout ca pour calculer l'arête ! ' on commence par les diagonales If d1 > 0 And d2 > 0 Then 'les deux diagonales sont définies arete = Sqr((d1 / 2) ^ 2 + (d2 / 2) ^ 2) romboCalcul() 'calculer les autres parametres Endif Endif End Le 18 septembre 2018 à 09:46, Fabien Bodard <gam...@gm...> a écrit : > Pour moi et mon niveau en math il va falloir être plus clair ... quel est > le rapport entre la récurssivité et un rhombo ? > > Un rhombo étant pour moi un losange ... > > Le lun. 17 sept. 2018 à 20:15, Pierre Henri <pie...@gm...> > a écrit : > >> Bonjour, >> Confronte a un probleme de résolution trigonométrique je ne sais comment >> résoudre ce problème. >> Il s'agit de calculer un rhombo à partir de deux paramètres quels qu'ils >> soient. >> Merci de vos conseils et aide. >> _______________________________________________ >> Gambas-user-fr mailing list >> Gam...@li... >> https://lists.sourceforge.net/lists/listinfo/gambas-user-fr >> > > > -- > Fabien Bodard > > > _______________________________________________ > Gambas-user-fr mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gambas-user-fr > > |