* fichier : frenet_1.dgibi **************************************************** * Section : Mathematiques Autres **************************************************** * * * VERIFICATION DE L'OPERATEUR FRENET * * - * * LIGNE DROITE, CERCLE, ELLIPSE, CYCLOIDE, SPIRALE * * HELICE * * * **************************************************** ********************************************************************** * VERIFICATION EN DIMENSION 2 ********************************************************************** OPTI 'DIME' 2 'ELEM' 'SEG2' ; * METTRE BTRAC = VRAI POUR TRACER LES RESULTATS BTRAC = FAUX ; * LISTMOTS POUR LES COMPOSANTES TXY = MOTS 'TX' 'TY' ; NXY = MOTS 'NX' 'NY' ; * 1 - LIGNE DROITE * **************** D1 = DROI 10 (0. 0.) (10. 0.) ; CHPO1 = MANU 'CHPO' D1 2 'TX' 1. 'TY' 0. 'NATURE' 'DIFFUS' ; CHPOREF = CHPO1 ; * 2 - CERCLE COMPLET (FERME) * ************************** D2 = CERC 10 'ROTA' 360. (5. 0.) (0. 0.) ; ELIM D2 1.E-10 ; X Y = COOR D2 ; CHPO1 = (NOMC 'TX' (0.-Y)) ET (NOMC 'TY' X) ; NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ; CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ; CHPOREF = CHPOREF ET CHPO1 ; DEPL D2 'MOIN' (0. 8.) ; DTOT = D1 ET D2 ; * 3 - DEMI-CERCLE * *************** D3 = CERC 10 'ROTA' 180. (5. 0.) (0. 0.) ; X Y = COOR D3 ; CHPO1 = (NOMC 'TX' (0.-Y)) ET (NOMC 'TY' X) ; NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ; CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ; CHPOREF = CHPOREF ET CHPO1 ; DEPL D3 'MOIN' (0. 8.) ; DEPL D3 'PLUS' (15. 0.) ; DVER = DTOT ET (D3 ELEM (LECT 2 PAS 1 ((NBEL D3) - 1))) ; DTOT = DTOT ET D3 ; * 4 - ELLIPSE * *********** T = PROG 0. PAS (2.*PI/40) (2.*PI) ; B = 5. ; A = 1.5 * B ; X = A * (COS (180./PI*T)) ; Y = B * (SIN (180./PI*T)) ; LIG1 = QUEL (VALE 'ELEM') X Y ; ELIM LIG1 1.E-10 ; GEO1 = POIN (ENLE X (DIME X)) (ENLE Y (DIME Y)) ; ELIM LIG1 GEO1 1.E-10 ; TCHPO = MANU 'CHPO' GEO1 1 'T' (ENLE T (DIME T)) 'NATURE' 'DIFFUS' ; CHPO1 = (NOMC 'TX' (-1. * A * (SIN (180./PI*TCHPO)))) + (NOMC 'TY' (B * (COS (180./PI*TCHPO)))) ; NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ; CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ; CHPOREF = CHPOREF ET CHPO1 ; DEPL LIG1 'MOIN' (15. 0.) ; DVER = DVER ET LIG1 ; DTOT = DTOT ET LIG1 ; * 5 - CYCLOIDE * ************ NDIS = 100 ; T = PROG (2.*PI/NDIS) PAS (2.*PI/NDIS) ((2.*PI*(NDIS - 1))/NDIS) ; X = T - (SIN (180./PI*T)) ; Y = 1. - (COS (180./PI*T)) ; CYC1 = QUEL (VALE 'ELEM') X Y ; GEO1 = POIN X Y ; ELIM CYC1 GEO1 1.E-10 ; TCHPO = MANU 'CHPO' GEO1 1 'T' T 'NATURE' 'DIFFUS' ; CHPO1 = (NOMC 'TX' (1. - (COS (180./PI*TCHPO)))) + (NOMC 'TY' (SIN (180./PI*TCHPO))) ; NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ; CHPO1 = CHAN 'ATTRIBUT' (-1. * CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ; CHPOREF = CHPOREF ET CHPO1 ; DEPL CYC1 'PLUS' (0. 5.) ; CYC1 = INVE CYC1 ; DVER = DVER ET (CYC1 ELEM (LECT 2 PAS 1 ((NBEL CYC1) - 1))) ; DTOT = DTOT ET CYC1 ; * 6 - SPIRALE LOGARITHMIQUE * ************************* T = PROG 0. PAS (4.*PI/NDIS) (4.*PI) ; B = 1.1 ; X = (B**T)*(COS (180./PI*T)) ; Y = (B**T)*(SIN (180./PI*T)) ; SPI1 = QUEL (VALE 'ELEM') X Y ; GEO1 = POIN X Y ; ELIM SPI1 GEO1 1.E-10 ; TCHPO = MANU 'CHPO' GEO1 1 'T' T 'NATURE' 'DIFFUS' ; M1 = MOTS 'T' ; COST = COS (180./PI*TCHPO) ; SINT = SIN (180./PI*TCHPO) ; BPT = B**TCHPO ; CHPO1 = (NOMC 'TX' (BPT * ((COST*(LOG B)) - SINT) M1 M1 M1)) + (NOMC 'TY' (BPT * ((SINT*(LOG B)) + COST) M1 M1 M1)) ; NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ; CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ; CHPOREF = CHPOREF ET CHPO1 ; DEPL SPI1 'PLUS' (15. 5.) ; DVER = DVER ET (SPI1 ELEM (LECT 2 PAS 1 ((NBEL SPI1) - 1))) ; DTOT = DTOT ET SPI1 ; * APPEL A FRENET * ************** FREN1 = FREN DTOT ; FREN1 = REDU FREN1 DVER ; * VERIFICATION * ************ * DETERMINATION DE LA NORMALE ANALYTIQUE CHPO1 = PVEC CHPOREF TXY NXY ; CHPOREF = REDU (CHPOREF ET CHPO1) DVER ; * CALCUL DES ERREURS DIF1 = FREN1 - CHPOREF ; NORT = (PSCA DIF1 DIF1 TXY TXY)**0.5 ; NORN = (PSCA DIF1 DIF1 NXY NXY)**0.5 ; SI BTRAC ; T1 = VECT FREN1 TXY 'BLEU' ; N1 = VECT FREN1 NXY 'VERT' ; TRAC (T1 ET N1) DVER ; TRAC NORT DVER ; TRAC NORT DVER ; EVO1 = EVOL 'CHPO' NORT CYC1 ; DESS EVO1 ; EVO2 = EVOL 'CHPO' NORT SPI1 ; DESS EVO2 ; FINSI ; * VERIFICATION DES ERREURS PRE1 = 1.E-2 ; SI ((MAXI NORT) > PRE1) ; MESS 'ERREUR SUR LE VECTEUR TANGENT 2D' ; ERRE 5 ; FINSI ; SI ((MAXI NORN) > PRE1) ; MESS 'ERREUR SUR LE VECTEUR NORMAL 2D' ; ERRE 5 ; FINSI ; ********************************************************************** * VERIFICATION EN DIMENSION 3 ********************************************************************** OPTI 'DIME' 3 ; * LISTMOTS POUR LES COMPOSANTES TXYZ = MOTS 'TX' 'TY' 'TZ' ; NXYZ = MOTS 'NX' 'NY' 'NZ' ; BXYZ = MOTS 'BX' 'BY' 'BZ' ; * ON COMPLETE LES REPERES ANALYTIQUES 2D * ************************************** MCOMP = (MOTS 'TZ' 'NZ') ET BXYZ ; CHPO1 = MANU 'CHPO' DTOT MCOMP (PROG 0. 0. 0. 0. 1.)'NATURE' 'DIFFUS' ; CHPOREF = CHPOREF ET CHPO1 ; CHPO1 = EXCO CHPOREF (TXYZ ET BXYZ) ; CHPO2 = PVEC CHPO1 CHPO1 BXYZ TXYZ NXYZ ; CHPO2 = CHAN 'ATTRIBUT' CHPO2 'NATURE' 'DIFFUS' ; CHPOREF = EXCO (CHPO1 ET CHPO2) (TXYZ ET NXYZ) ; * 7 - HELICE * ********** A B = 5. 1. ; NSEG = 120 * ((ENTI (EXTR (VALE 'ELEM') 4)) - 1) ; T = PROG 0. PAS (6.*PI/NSEG) (6.*PI) ; X = A * (COS (180.*T/PI)) ; Y = A * (SIN (180.*T/PI)) ; Z = B * T ; HEL1 = QUEL (VALE 'ELEM') X Y Z ; GEO1 = POIN X Y Z ; ELIM HEL1 GEO1 1.E-10 ; TCHPO = MANU 'CHPO' GEO1 1 'T' T 'NATURE' 'DIFFUS' ; DENOM = ((A**2) + (B**2))**0.5 ; CHPO1 = (NOMC 'TX' ((0. - A)/DENOM * (SIN (180.*TCHPO/PI)))) ET (NOMC 'TY' (A/DENOM * (COS (180.*TCHPO/PI)))) ET (MANU 'CHPO' HEL1 1 'TZ' (B/DENOM) 'NATURE' 'DIFFUS') ; CHPO2 = (NOMC 'NX' (0. - (COS (180.*TCHPO/PI)))) ET (NOMC 'NY' (0. - (SIN (180.*TCHPO/PI)))) ET (MANU 'CHPO' HEL1 1 'NZ' 0. 'NATURE' 'DIFFUS') ; CHPOREF = CHPOREF ET CHPO1 ET CHPO2 ; DEPL HEL1 'MOIN' (10. 0. 0.) ; DEPL HEL1 'PLUS' (0. 10. 0.) ; DVER = DVER ET (HEL1 ELEM (LECT 2 PAS 1 ((NBEL HEL1) - 1))) ; ; DTOT = DTOT ET HEL1 ; * APPEL A FRENET * ************** FREN2 = FREN DTOT ; FREN2 = REDU FREN2 DVER ; * VERIFICATION * ************ * DETERMINATION DE LA BINORMALE ANALYTIQUE CHPO1 = PVEC CHPOREF CHPOREF TXYZ NXYZ BXYZ ; CHPO1 = CHAN 'ATTRIBUT' CHPO1 'NATURE' 'DIFFUS' ; CHPOREF = REDU (CHPOREF ET CHPO1) DVER ; * CALCUL DES ERREURS DIF2 = FREN2 - CHPOREF ; NORT = (PSCA DIF2 DIF2 TXYZ TXYZ)**0.5 ; NORN = (PSCA DIF2 DIF2 NXYZ NXYZ)**0.5 ; NORB = (PSCA DIF2 DIF2 BXYZ BXYZ)**0.5 ; SI BTRAC ; T1 = VECT FREN2 TXYZ 'BLEU' ; N1 = VECT FREN2 NXYZ 'VERT' ; B1 = VECT FREN2 BXYZ 'ROUG' ; TRAC (T1 ET N1 ET B1) DVER ; TRAC NORT DVER ; TRAC NORN DVER ; TRAC NORB DVER ; TRAC NORT DVER ; TRAC NORN DVER ; TRAC NORB DVER ; EVO1 = EVOL 'CHPO' NORT CYC1 ; DESS EVO1 ; EVO2 = EVOL 'CHPO' NORT SPI1 ; DESS EVO2 ; EVO3 = EVOL 'CHPO' NORT HEL1 ; DESS EVO3 ; FINSI ; * VERIFICATION DES ERREURS SI ((MAXI (REDU NORT DVER)) > PRE1) ; MESS 'ERREUR SUR LE VECTEUR TANGENT 3D' ; ERRE 5 ; FINSI ; SI ((MAXI (REDU NORN DVER)) > PRE1) ; MESS 'ERREUR SUR LE VECTEUR NORMAL 3D' ; ERRE 5 ; FINSI ; SI ((MAXI (REDU NORB DVER)) > PRE1) ; MESS 'ERREUR SUR LA BINORMALE 3D' ; ERRE 5 ; FINSI ; FIN ;