* @FIS_2 PROCEDUR CHAT 97/09/25 21:15:08 2851 c*FLOTTANT a*FLOTTANT alpha*FLOTTANT beta*FLOTTANT nt*entier ndt*entier; * o = 0 0 0 ; ox = c 0. 0. ; * si (ega ndt 1) ; na = -1 ; nb = 4 ; nc = 2 ; nd = 1 ; finsi ; * si (ega ndt 2) ; na = -2 ; nb = 8 ; nc = 4 ; nd = 2 ; finsi ; * sinon ; finsi ; * * idiv1 = na ; idiv2 = 0 ; ndiv4 = nt / nb ; * Cas du quart d'ellipse repeter bouc1 ndiv4 ; idiv1 = idiv1 + nc ; idiv2 = idiv2 + nc ; psi1 = (idiv1 * 180.) / nt ; psi2 = (idiv2 * 180.) / nt ; cospsi1 = cos psi1 ; sinpsi1 = sin psi1 ; tanpsi1 = sinpsi1 / cospsi1 ; tanphi1 = a * tanpsi1 / c ; phik1 = atg tanphi1 ; phik2 = psi1 ; phi1 = (beta * phik2) + ((1 - beta) * phik1) ; * phi1 = atg tanphi1 ; si (phi1 < 0.) ; phi1 = 180. + phi1 ; finsi ; cosphi1 = cos phi1 ; sinphi1 = sin phi1 ; tanphi1 = sinphi1 / cosphi1 ; talpha = (alpha * (1 - (c / a))) + (c / a) ; tanpsi1 = talpha * tanphi1 ; psi1 = atg tanpsi1 ; * si (ega idiv2 (nt /2)) ; phi2 = 90. ; cosphi2 = 0. ; sinphi2 = 1. ; sinon ; cospsi2 = cos psi2 ; sinpsi2 = sin psi2 ; tanpsi2 = sinpsi2 / cospsi2 ; tanphi2 = a * tanpsi2 / c ; phik1 = atg tanphi2 ; phik2 = psi2 ; phi2 = (beta * phik2) + ((1 - beta) * phik1) ; * phi2 = atg tanphi2 ; si (phi2 < 0.) ; phi2 = 180. + phi2 ; finsi ; cosphi2 = cos phi2 ; sinphi2 = sin phi2 ; tanphi2 = sinphi2 / cosphi2 ; talpha = (alpha * (1 - (c / a))) + (c / a) ; tanpsi2 = talpha * tanphi2 ; psi2 = atg tanpsi2 ; * finsi ; si (ega idiv2 nt) ; phi2 = 180. ; cosphi2 = -1. ; sinphi2 = 0. ; finsi ; xcour1 = c * cosphi1 ; ycour1 = a * sinphi1 ; zcour1 = 0. ; pcour1 = xcour1 ycour1 zcour1 ; * xcour2 = c * cosphi2 ; ycour2 = a * sinphi2 ; zcour2 = 0. ; pcour2 = xcour2 ycour2 zcour2 ; * p21 = p02 moins ox ; * p31 = p03 moins ox ; * p41 = p04 moins ox ; * p51 = p05 moins ox ; * p61 = p06 moins ox ; * p81 = p08 moins ox ; * * p12 = p01 moins ox ; * p22 = p02 moins ox ; * p32 = p03 moins ox ; * p42 = p04 moins ox ; * p52 = p05 moins ox ; * p62 = p06 moins ox ; * p72 = p07 moins ox ; * p82 = p08 moins ox ; * * si (idiv1 ega nd) ; p1 = p01 ; p2 = p02 ; p3 = p03 ; p4 = p04 ; p5 = p05 ; p6 = p06 ; p7 = p07 ; p8 = p08 ; finsi ; * * * * l1 = p1 d 1 p11 d 1 p12 ; l3 = p3 d 1 p31 d 1 p32 ; l5 = p5 d 1 p51 d 1 p52 ; l7 = p7 d 1 p71 d 1 p72 ; * * pr1 = manu pr15 p4 p41 p8 * pr2 = manu pr15 p41 p42 p82 * pr3 = manu pr15 p7 p51m7 p51 p72m51 p72 p71 p8 p41 p82 p1 p31m1 p31 p12m31 p12 p11 ; * vp = pr1 et pr2 et pr3 ; * si (idiv1 ega nd) ; vtot = vp ; lsommet1 = l1 ; lsommet3 = l3 ; lsommet5 = l5 ; lsommet7 = l7 ; sinon ; vtot = vtot et vp ; lsommet1 = lsommet1 et l1 ; lsommet3 = lsommet3 et l3 ; lsommet5 = lsommet5 et l5 ; lsommet7 = lsommet7 et l7 ; finsi ; * * p1 = p12 ; p2 = p22 ; p3 = p32 ; p4 = p42 ; p5 = p52 ; p6 = p62 ; p7 = p72 ; p8 = p82 ; * * Calcul des angles aux sommets des triangles * ------------------------------------------- * *alpha1 = ANGLE p72 p51 p71 ; v1= p51 moins p72; v2= p71 moins p72; ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ; alpha1 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ; *alpha2 = ANGLE p12 p11 p31 ; v1= p11 moins p12; v2= p31 moins p12; ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ; alpha2 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ; * *alpha3 = ANGLE p51 p51m7 p72m51 ; v1= p51m7 moins p51; v2= p72m51 moins p51; ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ; alpha3 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ; *alpha4 = ANGLE p31 p31m1 p12m31 ; v1= p31m1 moins p31; v2= p12m31 moins p31; ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ; alpha4 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ; * * ------------------------------------------- * fin bouc1 ; * finproc vtot alpha_mi alpha_ma lsommet1 lsommet3 lsommet5 lsommet7 ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales