Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| debut de site avec tutoriels | |
|
+4Jicehel Nardo26 Yannick jpcr 8 participants | |
Auteur | Message |
---|
jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: debut de site avec tutoriels Mar 23 Oct 2012 - 21:08 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 23 Oct 2012 - 21:11 | |
| Je viens de jeter un coup d'oeil, c'est une bonne idée . ( Ne complique pas trop le truc en voulant ajouter trop de fonctionnalité, ce sera mon conseil) | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Mar 23 Oct 2012 - 22:33 | |
| Bonsoir jpcr, Je me suis permis de faire un petit essai... voici un exemple de mise en forme que tu peux faire sur ton site. (a adapter selon tes gouts bien sur... ) - Spoiler:
- Code:
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta name="description" content="site d'exemple de programme en basic Panoramic"> <title>Panoramic</title> <meta name="Keywords" content="Panoramic, Basic, Programmation">
<style type="text/css"> h1{color:blue;font-weight:bold;} h2{color:blue;} body{margin:1em 10em;} p{font-family:"georgia",serif;} table{background-color:#C0C0C0;width:100%;} td,.auteur{padding:0.5em;background:#EEF;} .niveau{width:25%;text-align:center;font-weight:bold;background:#DDF;} .debutant{color:green;}.debutant:after{content:"Débutant";} .moyen{color:blue;}.moyen:after{content:"Moyen";} .confirme{color:red;}.confirme:after{content:"Confirmé";} .auteur{width:25%;text-align:center;} th{background:#BBF;font-size:1.2em;} </style> </head> <body> <h1>Page ouverte le 15 mai 2011 dédié à Panoramic:</h1> <p>Panoramic est un langage de programation qui utilise le basic que je viens de découvrir sur ce site : <a href="http://panoramic-language.pagesperso-orange.fr/French/index.html" target="_blank">Site Web Panoramic</a></p> <p>Je vous propose d'essayer de lister des tutoriels de divers niveaux. Ces codes et leur commentaires sont fournis par la communauté Panoramic (voir site web Panoramic)</p>
<h2>Graphismes 3D</h2> <table> <tr><th>Niveau</th><th>Tuto</th><th>Auteur</th></tr> <tr> <td class="niveau debutant"></td><td><a href="http://jeanpierre.creis.free.fr/Panoramic/Tuto/3dBasic.html">3D simple mouvement de camera</a></td> <td class="auteur"></td> </tr> <tr> <td class="niveau debutant"></td><td><a href="http://jeanpierre.creis.free.fr/Panoramic/Tuto/3dBasicJicehel.html"> 3D simple avec clavier et gestion collision</a></td> <td class="auteur">Jicehel</td> </tr> </table>
<h2>Graphismes 2D</h2> <table> <tr><th>Niveau</th><th>Tuto</th><th>Auteur</th></tr> <tr> <td class="niveau debutant"></td><td>rien pour l'instant</td> <td class="auteur"></td> </tr> <tr> <td class="niveau moyen"></td><td>rien pour l'instant</td> <td class="auteur"></td> </tr> <tr> <td class="niveau confirme"></td><td>rien pour l'instant</td> <td class="auteur"></td> </tr> </table>
<h2>Mathematiques</h2> <table> <tr><th>Niveau</th><th>Tuto</th><th>Auteur</th></tr> <tr> <td class="niveau debutant"></td><td>rien</td> <td class="auteur"></td> </tr> </table>
<h2>Sub et Fonctions</h2> <table> <tr><th>Niveau</th><th>Tuto</th><th>Auteur</th></tr> <tr> <td class="niveau debutant"></td><td>rien</td> <td class="auteur"></td> </tr> </table>
<br> <hr> édité le 23/10/2012. </body> </html>
Avec cette solution, c'est plus simple pour toi de l'éditer (avec le bloc-note par exemple) et de rajouter des tutos sans trop te prendre la tête... Pour avoir une idée que cela donne : voir ici
Dernière édition par Nardo26 le Mar 23 Oct 2012 - 23:52, édité 3 fois (Raison : Corrections mineures pour être 100% en HTML 4.01 Transitional (en peu rouillé: d'habitude je suis en html5 ;)) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Mar 23 Oct 2012 - 23:22 | |
| Heu oui, je dois dire que c'est classe ta présentation Nardo Sinon pour les collisions, j'ai rajouté un peu de commentaires pour expliquer un peu plus ce qui est fait pour les débutants, je te mets la version HTML: - Code:
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="fr"> <head> <meta name="description" content="a" /> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Panoramic</title> <style type="text/css"> .auto-style1 { font-weight: normal; color: #0000FF; } </style> </head> <body style="direction: ltr;"> <h2 class="auto-style1"> <strong>Collision en 3d, déplacement d'un Cube 3D au clavier</strong></h2>
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="width: 926px; font-weight: bold;">CODE</td> <td style="width: 1062px; font-weight: bold;"><big>commentaires</big></td> </tr> <tr> <td style="width: 926px;"> label bouge<br> <br> dim i : ' Déclare une variable temporaire nommée i<br> <br> full_space 0: ' Etendre la fenêtre à tout l'écran<br> scene3d 1 : ' Créé notre scene 3D pour manipuler un monde 3D avec lumière, caméra et objets 3D<br> full_space 1: ' Rend visibles les axes 3D de l'objet 1 (SCENE3D)<br> axes_show : ' Affiche les axes<br> <br> 3d_cube 1,1:3d_color 1,0,0,255 : ' Créé le premier cube 3D puis le colorie en bleu <br> 3d_scale 1,1,1,0.001 : ' Applatie le cube sur l'axe Z<br> 3d_position 1,0,0,0 : ' Place le cube 1 en 0,0,0 dans la scene 3D<br> 3d_collision_as_faces 1<br> <br> 3d_cube 2,1:3d_color 2,255,0,0 : ' Créé le second cube et le colorie en rouge<br> 3d_rotate 2,0,270,0 : ' On tourne le cube pour l'orienter afin de pouvoir le déplacer avec les touches<br> 3d_scale 2,0.001,1,1 : ' On écrase le cube pour qu'il soit plat vu du dessus<br> 3d_position 2,5,0,0 : ' On déplace le cube en 5 sur l'axe des X<br> 3d_collision_as_faces 2 : ' Utiliser les faces de l'objet 2 pour tester les collisions<br> <br> timer 99:timer_interval 99,1 : ' Définit le timer 99 et le fixe à 1 ms<br> on_timer 99,bouge : ' Executer le sous-programme bouge quand le timer arrive à échéance<br> end : ' Fin du programme principal<br> <br> ' Sous programme bouge exécuté quand le timer 99 arrive à échéance <br> bouge:<br> timer_off 99 : ' On bloque le timer 99 pour laisser le temps de traiter le sous programme<br> select scancode<br> case 27:terminate : ' Si on appuie sur "echap" ou "esc", arréter le programme<br> case 38:3d_rotate 2,270,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Haut"<br> case 40:3d_rotate 2, 90,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Bas"<br> case 37:3d_rotate 2,180,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Gauche"<br> case 39:3d_rotate 2, 0,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Droite"<br> ' Dans le cas d'appuie sur l'un des 4 touches de directions, orienter le cube et le déplacer de 0.10<br> end_select<br> if O3D_collision(1,2)=1 then message "Collision" : 3d_position 2,5,0,0<br> ' En cas de collision entre les objets 3D 1 et 2, afficher "collision" et remettre l'objet 2 en x=5<br> timer_on 99 : ' On remet en route le timer 99<br> return<br> </td> <td style="width: 1062px;"> Dans ce programme écrit par Jicehel,<br> on fait bouger un cube au clavier puis <br> on gére sa collision avec un autre cube.<br> </td> </tr> <tr> <td style="width: 926px;"></td> <td style="width: 1062px;"></td> </tr> </tbody> </table> <br> édité le 15/05/2011. </body> </html> | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 1:25 | |
| Même remarque pour ton tuto, jicehel : - Spoiler:
- Code:
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <meta name="description" content="Collision en 3d"/> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <meta name="author" content="Jicehel"/> <title>Panoramic</title> <style type="text/css"> h1{color:blue;font-weight:bold;} h2{color:blue;} body{margin:1em 1em 0 4em;} p{font-family:"georgia",serif;text-align:justify;} hr{clear:both;border:0 none;} .gauche{float:left;max-width:70%;max-height:30em;margin-bottom:1em;width:70%;} .droite{float:right;width:29%;} pre{overflow:scroll;max-height:30em;border:1px solid #AAA;padding:1em;background:#EFEFEF;} </style> </head> <body> <h2>Collision en 3d, déplacement d'un Cube 3D au clavier</h2> <div class="container"> <div class="gauche"> <h2>Code</h2> <pre> label bouge dim i : ' Déclare une variable temporaire nommée i full_space 0: ' Etendre la fenêtre à tout l'écran scene3d 1 : ' Créé notre scene 3D pour manipuler un monde 3D avec lumière, caméra et objets 3D full_space 1: ' Rend visibles les axes 3D de l'objet 1 (SCENE3D) axes_show : ' Affiche les axes
3d_cube 1,1:3d_color 1,0,0,255 : ' Créé le premier cube 3D puis le colorie en bleu 3d_scale 1,1,1,0.001 : ' Applatie le cube sur l'axe Z 3d_position 1,0,0,0 : ' Place le cube 1 en 0,0,0 dans la scene 3D 3d_collision_as_faces 1
3d_cube 2,1:3d_color 2,255,0,0 : ' Créé le second cube et le colorie en rouge 3d_rotate 2,0,270,0 : ' On tourne le cube pour l'orienter afin de pouvoir le déplacer avec les touches 3d_scale 2,0.001,1,1 : ' On écrase le cube pour qu'il soit plat vu du dessus 3d_position 2,5,0,0 : ' On déplace le cube en 5 sur l'axe des X 3d_collision_as_faces 2 : ' Utiliser les faces de l'objet 2 pour tester les collisions
timer 99:timer_interval 99,1 : ' Définit le timer 99 et le fixe à 1 ms on_timer 99,bouge : ' Executer le sous-programme bouge quand le timer arrive à échéance end : ' Fin du programme principal
' Sous programme bouge exécuté quand le timer 99 arrive à échéance bouge: timer_off 99 : ' On bloque le timer 99 pour laisser le temps de traiter le sous programme select scancode case 27:terminate : ' Si on appuie sur "echap" ou "esc", arréter le programme case 38:3d_rotate 2,270,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Haut" case 40:3d_rotate 2, 90,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Bas" case 37:3d_rotate 2,180,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Gauche" case 39:3d_rotate 2, 0,270,0 :3d_move 2,-0.10 : ' Si on appuie sur la flèche "Droite" ' Dans le cas d'appuie sur l'un des 4 touches de directions, orienter le cube et le déplacer de 0.10 end_select if O3D_collision(1,2)=1 then message "Collision" : 3d_position 2,5,0,0 ' En cas de collision entre les objets 3D 1 et 2, afficher "collision" et remettre l'objet 2 en x=5 timer_on 99 : ' On remet en route le timer 99 return </pre> </div> <div class="droite"> <h2>Description</h2> <p>Dans ce programme écrit par Jicehel, on fait bouger un cube au clavier puis on gére sa collision avec un autre cube.</p> </div> <hr/> </div> <p>édité le 15/05/2011.</p> </body> </html>
Comme tu peux le voir, tu n'as qu'a juste copier/coller ton code entre les balises <pre> </pre> voir ici pour la demo...
Dernière édition par Nardo26 le Mer 24 Oct 2012 - 2:09, édité 5 fois (Raison : Passage en XHTML strict pour compatibilité avec IE (pb overflow)) | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 3:18 | |
| Salut Nardo26 J’ai suivi ce que tu as indiqué à Jicehel. Voici mon essai. j’ai testé avec : OPERA === > OK Chrome == > OK Firefox == > OK IE ====== > NOT OK ! Est-ce correct ? - Spoiler:
- Code:
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <meta name="description" content="TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE"> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta name="author" content="Papydall"> <title>Panoramic</title> <style type="text/css"> h1{color:blue;font-weight:bold;} h2{color:blue;} body{margin:1em 1em 0 4em;} p{font-family:"georgia",serif;text-align:justify;} hr{clear:both;border:0 none;} .gauche{float:left;max-width:70%;max-height:30em;margin-bottom:1em;width:70%;} .droite{float:right;width:29%;} pre{overflow:scroll;max-height:30em;border:1px solid #AAA;padding:1em;background:#DDD;} </style> </head> <body> <h2>TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE PAR PAPYDALL</h2> <div class="container"> <div class="gauche"> <h2>Code</h2> <pre> ' ****************************************************************************** ' ' TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE ' ' PAR PAPYDALL ' ' ****************************************************************************** dim titre$,pi,x,y,p,lx,ly,a,xc,yc,xp,yp,xmin,xmax,ymin,ymax,epsilon,s$,nbobj% dim circulaires1%,circulaires2%,hyperboliques1%,hyperboliques2%,autres% dim form_graph%
label fonctions_circulaires, fonctions_circulaires_inverses label fonctions_hyperboliques, fonctions_hyperboliques_inverses, autres_fonctions label sinus, cosinus, tangente, cotangente, secante, cosecante label arc_sinus, arc_cosinus, arc_tangente, arc_cotangente, arc_secante, arc_cosecante label sinus_hyperbolique, cosinus_hyperbolique, tangente_hyperbolique label cotangente_hyperbolique, secante_hyperbolique, cosecante_hyperbolique label argument_sinus_hyperbolique, argument_cosinus_hyperbolique label argument_tangente_hyperbolique, argument_cotangente_hyperbolique label argument_secante_hyperbolique, argument_cosecante_hyperbolique label logarithme_neperien, logarithme_decimal, logarithme_binaire label sinus_cardinal, sinus_cardinal_normalise, exponentielle label active_circulaires, active_hyperboliques, active_autres,axes,demarrer label hide_form_graph,fin
gosub demarrer end
' ****************************************************************************** demarrer:
pi = 4*atn(1) : p = pi/180 lx = 1020 : ly = 750 : xc = lx/2 : yc = ly/2 xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : epsilon = power(10,0-10) titre$ = string$(60," ") titre$ = titre$ + "TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE PAR PAPYDALL" caption 0,titre$ width 0, 1020: height 0,600 on_click 0,fin : ' <CLICK> pour sortir
nbobj% = nbobj% + 1 : ' 1er bouton button nbobj% : width nbobj%, 270 : top nbobj%,10 : left nbobj%,5 caption nbobj% ,"FONCTIONS TRIGONOMETRIQUES CIRCULAIRES" on_click nbobj%, active_circulaires
nbobj% = nbobj% + 1 : ' 2ème bouton button nbobj% : width nbobj% , 410 : top nbobj%,10 : left nbobj%,320 caption nbobj% ,"FONCTIONS TRIGONOMETRIQUES HYPERBOLIQUES" on_click nbobj%, active_hyperboliques
nbobj% = nbobj% + 1 : ' 3ème bouton button nbobj% : width nbobj%,150 : top nbobj% ,10 : left nbobj% ,800 caption nbobj%,"AUTRES FONCTIONS" : on_click nbobj%, active_autres
nbobj% = nbobj% + 1 : ' Liste des fonctions circulaires list nbobj% : width nbobj%, 100 : top nbobj%,40 : left nbobj%, 10 item_add nbobj%, "SINUS" : item_add nbobj%, "COSINUS" item_add nbobj%, "TANGENTE" : item_add nbobj%, "COTANGENTE" item_add nbobj%, "SECANTE" : item_add nbobj%, "COSECANTE" circulaires1% = nbobj% inactive circulaires1% : on_click circulaires1%, fonctions_circulaires
nbobj% = nbobj% + 1 : ' Liste des fonctions circulaires inverses (ou réciproques) list nbobj% : width nbobj%,120 : top nbobj%,40 : left nbobj%,140 item_add nbobj%,"ARC_SINUS" : item_add nbobj%,"ARC_COSINUS" item_add nbobj%, "ARC_TANGENTE" : item_add nbobj%,"ARC_COTANGENTE" item_add nbobj%,"ARC_SECANTE" : item_add nbobj%, "ARC_COSECANTE" circulaires2% = nbobj% inactive circulaires2% : on_click circulaires2%, fonctions_circulaires_inverses
nbobj% = nbobj% + 1 : ' Liste des fonctions hyperboliques list nbobj% : width nbobj% ,190 : top nbobj% ,40 :left nbobj% ,300 item_add nbobj% , "SINUS_HYPERBOLIQUE" item_add nbobj% , "COSINUS_HYPERBOLIQUE" item_add nbobj% , "TANGENTE_HYPERBOLIQUE" item_add nbobj% , "COTANGENTE_HYPERBOLIQUE" item_add nbobj% , "SECANTE_HYPERBOLIQUE" item_add nbobj% , "COSECANTE_HYPERBOLIQUE" hyperboliques1% = nbobj% inactive hyperboliques1% : on_click hyperboliques1%, fonctions_hyperboliques
nbobj% = nbobj% + 1:' Liste des fonctions hyperboliques inverses (ou réciproques) list nbobj% : width nbobj%,250 : top nbobj%,40 : left nbobj%,500 item_add nbobj%, "ARGUMENT_SINUS_HYPERBOLIQUE" item_add nbobj%, "ARGUMENT_COSINUS_HYPERBOLIQUE" item_add nbobj%, "ARGUMENT_TANGENTE_HYPERBOLIQUE" item_add nbobj%, "ARGUMENT_COTANGENTE_HYPERBOLIQUE" item_add nbobj%, "ARGUMENT_SECANTE_HYPERBOLIQUE" item_add nbobj%, "ARGUMENT_COSECANTE_HYPERBOLIQUE" hyperboliques2% = nbobj% : inactive hyperboliques2% on_click hyperboliques2%, fonctions_hyperboliques_inverses
nbobj% = nbobj% + 1 : ' Liste autres fonctions list nbobj% : width nbobj%,200 : top nbobj%,40 : left nbobj%,780 item_add nbobj%, "SINUS CARDINAL" : item_add nbobj%, "SINUS CARDINAL NORMALISE" item_add nbobj%, "LOGARITHME NEPERIEN" : item_add nbobj%, "LOGARITHME DECIMAL" item_add nbobj%, "LOGARITHME BINAIRE" : item_add nbobj%, "EXPONENTIELLE" autres% = nbobj% : inactive autres% : on_click autres%, autres_fonctions
nbobj% = nbobj% + 1 : ' FORM pour les tracés des courbes form nbobj% : width nbobj% ,lx+10 : height nbobj% ,ly : hide nbobj% form_graph% = nbobj% : 2d_target_is form_graph% color form_graph% ,0,0,0 : font_color form_graph% ,255,255,0 font_size form_graph% ,12 font_bold form_graph% : on_click form_graph% ,hide_form_graph
font_color 0,0,0,255 print_locate 100,350 print "<CLICK> SUR L'UN DES 3 BOUTONS POUR CHOISIR UNE FONCTION" ; print string$(100," ");"<CLICK> N'IMPORTE OU POUR SORTIR"
return ' ****************************************************************************** active_circulaires:
active circulaires1% : active circulaires2%
return ' ****************************************************************************** active_hyperboliques:
active hyperboliques1% : active hyperboliques2%
return ' ****************************************************************************** active_autres:
active autres%
return ' ****************************************************************************** hide_form_graph:
hide form_graph% : print_target_is 0 : print_locate 100,350 print "<CLICK> SUR L'UN DES 3 BOUTONS POUR CHOISIR UNE FONCTION" ; print string$(100," ");"<CLICK> N'IMPORTE OU POUR SORTIR"
return ' ****************************************************************************** fin:
terminate
return ' ****************************************************************************** fonctions_circulaires:
if item_index$(circulaires1%) = "SINUS" then gosub sinus if item_index$(circulaires1%) = "COSINUS" then gosub cosinus if item_index$(circulaires1%) = "TANGENTE" then gosub tangente if item_index$(circulaires1%) = "COTANGENTE" then gosub cotangente if item_index$(circulaires1%) = "SECANTE" then gosub secante if item_index$(circulaires1%) = "COSECANTE" then gosub cosecante
return ' ****************************************************************************** fonctions_circulaires_inverses:
if item_index$(circulaires2%) = "ARC_SINUS" then gosub arc_sinus if item_index$(circulaires2%) = "ARC_COSINUS" then gosub arc_cosinus if item_index$(circulaires2%) = "ARC_TANGENTE" then gosub arc_tangente if item_index$(circulaires2%) = "ARC_COTANGENTE" then gosub arc_cotangente if item_index$(circulaires2%) = "ARC_SECANTE" then gosub arc_secante if item_index$(circulaires2%) = "ARC_COSECANTE" then gosub arc_cosecante
return ' ****************************************************************************** fonctions_hyperboliques:
if item_index$(hyperboliques1%) = "SINUS_HYPERBOLIQUE" then gosub sinus_hyperbolique if item_index$(hyperboliques1%) = "COSINUS_HYPERBOLIQUE" then gosub cosinus_hyperbolique if item_index$(hyperboliques1%) = "TANGENTE_HYPERBOLIQUE" then gosub tangente_hyperbolique if item_index$(hyperboliques1%) = "COTANGENTE_HYPERBOLIQUE" then gosub cotangente_hyperbolique if item_index$(hyperboliques1%) = "SECANTE_HYPERBOLIQUE" then gosub secante_hyperbolique if item_index$(hyperboliques1%) = "COSECANTE_HYPERBOLIQUE" then gosub cosecante_hyperbolique
return ' ****************************************************************************** fonctions_hyperboliques_inverses:
if item_index$(hyperboliques2%) = "ARGUMENT_SINUS_HYPERBOLIQUE" then gosub argument_sinus_hyperbolique if item_index$(hyperboliques2%) = "ARGUMENT_COSINUS_HYPERBOLIQUE" then gosub argument_cosinus_hyperbolique if item_index$(hyperboliques2%) = "ARGUMENT_TANGENTE_HYPERBOLIQUE" then gosub argument_tangente_hyperbolique if item_index$(hyperboliques2%) = "ARGUMENT_COTANGENTE_HYPERBOLIQUE" then gosub argument_cotangente_hyperbolique if item_index$(hyperboliques2%) = "ARGUMENT_SECANTE_HYPERBOLIQUE" then gosub argument_secante_hyperbolique if item_index$(hyperboliques2%) = "ARGUMENT_COSECANTE_HYPERBOLIQUE" then gosub argument_cosecante_hyperbolique
return ' ****************************************************************************** autres_fonctions:
if item_index$(autres%) = "SINUS CARDINAL" then gosub sinus_cardinal if item_index$(autres%) = "SINUS CARDINAL NORMALISE" then gosub sinus_cardinal_normalise if item_index$(autres%) = "LOGARITHME NEPERIEN" then gosub logarithme_neperien if item_index$(autres%) = "LOGARITHME DECIMAL" then gosub logarithme_decimal if item_index$(autres%) = "LOGARITHME BINAIRE" then gosub logarithme_binaire if item_index$(autres%) = "EXPONENTIELLE" then gosub exponentielle
return ' ****************************************************************************** ' *** Tracé des axes axes:
if xmin <> -2*pi for a = xmin to xmax step p x = a : y = 0 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) print_locate xp,yp+10 : print x 2d_pen_color 127,127,127 2d_line xp,0,xp,yp*2 next a
for a = ymin to ymax step p x = 0 : y = a xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) print_locate xp-22,yp/2-10+ly/4-2 print 0-y 2d_line 2*xp,yp/2+ly/4,xmax,yp/2 +ly/4 next a 2d_pen_color 255,0,0 : ' rouge pour tracer les axes 2d_line 0,ly/2,lx,ly/2 : ' tracé de l'axe des x 2d_line lx/2,0,lx/2,ly : ' tracé de l'axe des y 2d_pen_color 0,255,0 : ' vert pour tracer la courbe return end_if
for a = xmin to xmax step pi/2 : ' graduation de l'axe des X x = a : y = 0 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) print_locate xp,yp+10 select int((a)/pi/2) case -4 : s$ = "-2pi" case -3 : s$ = "-3pi/2" case -2 : s$ = "-pi" case -1 : s$ = "-pi/2" case 0 : s$ = "0" case 1 : s$ = "pi/2" case 2 : s$ = "pi" case 3 : s$ = "3pi/2" case 4 : s$ = "2pi" end_select
if int((a)/pi/2) = 0 : else : print s$ : end_if : ' ne pas afficher le zero print_locate lx-22,yp+10 : print "2pi" : ' il sera affiché sur l'axe des y 2d_pen_color 127,127,127 2d_line xp,0,xp,yp*2 next a
for a = ymin to ymax step 1 : ' graduation de l'axe des Y x = 0 : y = a xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) print_locate xp-22,yp/2-10+ly/4-2 print 0-a 2d_line 2*xp,yp/2+ly/4,xmax,yp/2 +ly/4 next a
2d_pen_color 255,0,0 : ' rouge pour tracer les axes 2d_line 0,ly/2,lx,ly/2 : ' tracé de l'axe des x 2d_line lx/2,0,lx/2,ly : ' tracé de l'axe des y 2d_pen_color 0,255,0 : ' vert pour tracer la courbe
return
' ****************************************************************************** ' *** Fonctions circulaires : les fonctions COS et SIN s'appellent des fonctions ' circulaires parce que le cercle d'équation x*x + y*y = 1 peut se ' paramétrer en ' x = COS(t) ' y = SIN(t) avec t réel quelconque. ' ****************************************************************************** sinus:
' Pour toute les fonctions trigonométriques,la variable indépendente x est ' exprimée en radians. Si vous utilisez les dégrés, n'oubliez pas de les ' convertir en radians, en multipliant les dégrés par le coefficient pi/180.
print_target_is form_graph% : show form_graph% caption form_graph% , string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = SIN(X)" print " La fonction SIN(x) (sinus circulaire de x) est une fonction définie quelque soit x.":print print " La fonction y = sin(x) est comprise entre + ou -1 : -1 <= sin(x) <= +1":print print : print " En PANORAMIC, la fonction sinus est notée SIN(X)"
xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes x = xmin : y = sin(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin+p to xmax step p x = a : y = sin(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
cosinus:
print_target_is form_graph% : show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = COS(X)" print " La fonction COS(x)(cosinus circulaire de x) est une fonction définie quelque soit x.":print print " La fonction y = cos(x) est comprise entre + ou -1 : -1 <= cos(x) <= +1":print print:print "En PANORAMIC, la fonction cosinus est notée COS(X)" xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes x = xmin : y = cos(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin to xmax step p x = a : y = cos(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
tangente:
print_target_is form_graph% : show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = TAN(X)" print " La fonction TAN(x) (tangente circulaire de x) qui est égale à SIN(x)/COS(x) est définie quelque soit x tel que" :print print " COS(x) ne soit pas nul." :print print " TAN(x) est donc définie pour tout x <> pi/2 + k*pi avec k entier positif,négatif ou nul." :print print " La fonction y = tan(x) peut prendre toutes les valeures de moins l'infini à plus l'infini." :print print " Notez bien le tracé des asymptotes verticales pour les valeurs de pi/2+k*pi." :print print : print " En PANORAMIC, la fonction tangente est notée TAN(X)" xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes x = xmin : y = tan(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin to xmax step p x = a : y = tan(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
cotangente:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = COTAN(X)" print_target_is form_graph% print " La fonction COTAN(x) (cotangente circulaire de x) qui est égale à : 1/TAN(x) = COS(x)/SIN(x)":print print " est définie quelque soit x tel que SIN(x) ne soit pas nul. COTAN(x) est donc définie pour tout x <> k*pi avec k entier positif,":print print " négatif ou nul. La fonction y = cotan(x) peut prendre toutes les valeures de moins l'infini à plus l'infini.":print print " Notez bien le tracé des asymptotes verticales pour les valeurs de k*pi.":print print:print " En PANORAMIC, la fonction cotangente n'existe pas. Pour l'utiliser faites y = 1/tan(x)"
xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes x = xmin : y = 1/tan(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin to xmax step p x = a : y = 1/tan(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return
' ******************************************************************************
secante:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = SEC(X)" print_target_is form_graph% print " La fonction SEC(x) (secante circulaire de x) qui est égale à 1/COS(x) est définie quelque soit x tel que COS(x) ne soit pas nul.":print print " SEC(x) est donc définie pour x <> pi/2 + k*pi avec k entier positif, négatif ou nul.":print print " La fonction y = sec(x) peut prendre toutes les valeures de ]-l'infini à -1] et de [+1 à + l'infini[.":print print " Notez bien le tracé des asymptotes verticales pour les valeurs de pi/2 + k*pi.":print print : print " En PANORAMIC, la fonction secante n'existe pas. Pour l'utiliser faites y = 1/cos(x)"
xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes
x = xmin : y = 1/cos(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin to xmax step p/2 x = a : y = 1/cos(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return
' ******************************************************************************
cosecante:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = COSEC(X)" print_target_is form_graph% print "La fonction COSEC(x) (cosecante circulaire de x) qui est égale à 1/SIN(x) est définie quelque soit x tel que SIN(x) ne soit pas nul.":print
print " COSEC(x) est donc définie pour x <> k*pi avec k entier positif, négatif ou nul.":print print " La fonction y = cosec(x) peut prendre toutes les valeures de ]-l'infini à -1] et de [+1 à + l'infini[.":print
print " Notez bien le tracé des asymptotes verticales pour les valeurs de k*pi.":print print:print " En PANORAMIC, la fonction cosecante n'existe pas. Pour l'utiliser faites y = 1/sin(x)"
xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes x = xmin : y = 1/sin(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin to xmax step p x = a : y = 1/sin(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ****************************************************************************** ' *** Les fonctions ARCSIN,ARCCOS,ARCTAN, etc.. s'appellent des fonctions ' circulaires réciproques ou inverses
arc_sinus:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARC_SIN(X)" print_target_is form_graph% print " LA fonction ARCSIN(x) (Arc sinus x ),fonction inverse de la fonction sinus est définie dans l'intervalle [-1, +1].":print print " Elle est impaire, continue et croissante de -pi/2 à +pi/2":print print : print " En PANORAMIC, la fonction Arc sin x est notée ASIN(x)" xmin = 0-2 : xmax = 2 : ymin = -1 : ymax = 1 : p = 1 : gosub axes x = 0-1 : y = asin(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = -1 to 1 step p x = a : y = asin(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
arc_cosinus:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARC_COS(X)" print_target_is form_graph% print " LA fonction ARCCOS(x) (Arc cosinus x ),fonction inverse de la fonction cosinus est définie dans l'intervalle [-1, +1].":print
print " Elle est impaire, continue et décroissante de pi à 0":print print : print " En PANORAMIC, la fonction Arc cos x est notée ACOS(x)" xmin = 0-2 : xmax = 2 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = 0-1 : y = acos(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = -1 to 1 step p x = a : y = acos(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a x = 1 : y = acos(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4
return ' ******************************************************************************
arc_tangente:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARC_TAN(X)" print_target_is form_graph% print " LA fonction ARCTAN(x) (Arc tangente x ), fonction inverse de la fonction tangente est définie quel que soit x":print
print " Elle est impaire,continue et croissante de -pi/2 à +pi/2 (bornes non comprises)":print print : print " En PANORAMIC, la fonction Arc tg x est notée ATN(x)" xmin = 0-10 : xmax = 10 : ymin = -1 : ymax = 1 : p = 1 : gosub axes x = xmin : y = atn(x) :p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp+lx,yp/2+ly/4 : ' tracé de l'asymptote horizontale y = -pi/2 for a = xmin to xmax step p x = a : y = atn(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a 2d_poly_to 0,yp/2+ly/4 : ' tracé de l'asymptote horizontale y = pi/2 return ' ******************************************************************************
arc_cotangente:
show form_graph% caption form_graph% , string$(50," ")+" <CLICK> POUR REVENIR" +string$(55," ") + "Y = ARC_COTAN(X)" print_target_is form_graph% print " LA fonction ARCCOTAN(x) (Arc cotangente x ),fonction inverse de la fonction cotangente est définie quel que soit x":print
print " Elle est impaire, continue et décroissante de pi à 0 (bornes non comprises)":print print : print " En PANORAMIC, cette fonction n'existe pas. Pour l'utiliser faites y = pi/2 - ATN(x)"
xmin = -10: xmax = 10 : ymin = -3 : ymax = 3 : p = 1 : gosub axes x = xmin : y = pi/2 - atn(a) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-20,yp/2+ly/4 for a = xmin to xmax step p x = a : y = pi/2 - atn(a) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
' ARCSEC(x) = -ARCCOS(1/x) = ATN(SQR(x*x-1))-pi arc_secante:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARC_SEC(X)" print_target_is form_graph% print " LA fonction ARCSEC(x) (Arc secante x ),fonction inverse de la fonction secante":print print " est définie de moins l'infini à moins un et de plus un à plus l'infini (bornes non comprises)":print print : print " En PANORAMIC, cette fonction n'existe pas. Pour l'utiliser faites y = -ACOS(1/x) ou y = ATN(SQR(x*x-1))-pi":print
xmin = -10: xmax = 10 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = xmin : y = 0-acos(1/x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0 for a = xmin to 0-1 step p : ' Branche gauche de la courbe x = a : y =0- acos(1/x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2 +ly/4 next a
x = 1 + epsilon : y = 0-acos(1/x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) 2d_poly_from xp,(yp/2+ly/4) for a = 1+epsilon to xmax step p : ' Branche droite de la courbe x = a : y = 0-acos(1/x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
' ARCCOSEC(x) = ASIN(1/x) = ATN(x/sqr(x*x-1)) arc_cosecante:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARC_COSEC(X)" print_target_is form_graph% print " LA fonction ARCCOSEC(x) (Arc cosecante x ),fonction inverse de la fonction":print print " cosecante est définie de moins l'infini à moins un et de plus un à plus l'infini (bornes non comprises)":print print :print " En PANORAMIC, cette fonction n'existe pas. Pour l'utiliser faites y = ASIN(1/x) = ATN(x/sqr(x*x-1))"
xmin = -10: xmax = 10 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = xmin : y = asin(1/x) :p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0-(yp/2-ly/4) for a = xmin to 0-1 step p x = a : y = asin(1/x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
x = 1+p : y = asin(1/x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = 1+p to xmax step p x = a : y = asin(1/x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ****************************************************************************** ' *** Les fonctions SH et CH s'appellent des fonctions hyperboliques parce ' que la branche "droite" de l'hyperbole d'équation x*x - y*y = 1 peut se ' paramétrer en : ' x = ch(t) ' y = sh(t) avec t réel quelconque ' ******************************************************************************
sinus_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = SINH(X)" print_target_is form_graph% print " On appelle sinus hyperbolique de x la quantité : y = SH(x) = (exp(x) - exp(-x))/2" : print print " y = sh(x) est impaire, définie et continue quelque soit x" : print : print print " En PANORAMIC la fonction sinus hyperbolique de x est notée HSIN(x)" xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = xmin : y = hsin(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0-(yp/2+ly/4) for a = xmin to xmax step p x = a : y = hsin(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
cosinus_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = COSH(X)" print_target_is form_graph% print " On appelle cosinus hyperbolique de x la quantité : Y = CH(x) = (exp(x) + exp(-x))/2":print print " y = ch(x) est paire, définie et continue quelque soit x":print print " Sa courbe représentative est appelée la chaînette" :print : print print " En PANORAMIC la fonction cosinus hyperbolique de x est notée HCOS(x)" xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = xmin : y = hcos(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0-(yp/2+ly/4) for a = xmin to xmax step p x = a : y = hcos(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
tangente_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = TANH(X)" print_target_is form_graph% print " On appelle tangente hyperbolique de x la quantité : Y = TH(x) = SH(x)/CH(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))": print print " y = th(x) est impaire, définie et continue quelque soit x ":print print " La courbe représentative de y = th(x) admet pour asymptote les deux droites d'équations y = 1 et y = -1" print:print:print " En PANORAMIC la fonction tangente hyperbolique de x est notée HTAN(x)" xmin = -4: xmax = 4 : ymin = -1 : ymax = 1 : p = 1 : gosub axes x = xmin : y = htan(x) :p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from lx,yp/2+ly/4 : ' asyptote d'équation y = -1 for a = xmin to xmax step p x = a : y = htan(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a 2d_poly_to 0,yp/2+ly/4 : ' asyptote d'équation y = +1 return ' ******************************************************************************
cotangente_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = COTH(X)" print_target_is form_graph% print " On appelle cotangente hyperbolique de x la quantité :" : print print " Y = COTH(x) = CH(x) / SH(x) = 1 / TH(x) = (exp(x) + exp(-x)) / (exp(x) - exp(-x))":print print " y = th(x) est définie et continue quelque soit x <> 0" : print print:print " En PANORAMIC la fonction cotangente hyperbolique n'existe pas. Pour l'utiliser faites y = 1 / HTAN(x)" xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = xmin : y = 1/htan(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0-(yp/2+ly/4) for a = xmin to xmax step p x = a : y = 1/htan(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
secante_hyperbolique:
show form_graph% caption form_graph% , string$(50," ")+" <CLICK> POUR REVENIR" +string$(55," ") + "Y = SECH(X)" print_target_is form_graph% print " On appelle secante hyperbolique de x la quantité : Y = SECH(x) = 2 / (exp(x) + exp(-x))":print print " y = sech(x) est définie et continue quelque soit x. Elle admet pour x = 0 un maximum y = 1":print print:print " En PANORAMIC la fonction secante hyperbolique n'existe pas. Pour l'utiliser faites y = 2 / (exp(x) + exp(0-x))" xmin = -4: xmax = 4 : ymin = -1 : ymax = 1 : p = 1 : gosub axes x = xmin : y = 2 /(exp(x) + exp(0-x)) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0-(yp/2+ly/4) for a = xmin to xmax step p x = a : y = 2 /(exp(x) + exp(0-x)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
cosecante_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = COSECH(X)" print_target_is form_graph% print " On appelle cosecante hyperbolique de x la quantité : Y = COSECH(x) = 2 / (exp(x) - exp(0-x))":print print " y = cosech(x) est définie et continue quelque soit x <> 0" : print print:print " En PANORAMIC la fonction cosecante hyperbolique de x n'existe pas. Pour l'utiliser faites y = 2 /(exp(x) - exp(0-x))"
xmin = -5: xmax = 5 : ymin = -1 : ymax = 1 : p = 1 : gosub axes x = xmin : y = 2 /(exp(x) - exp(0-x)) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0-(yp/2+ly/4) for a = xmin to xmax step p x = a : y = 2 /(exp(x) - exp(0-x)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a 2d_line 0,yp/2+ly/4+3,lx,yp/2+ly/4+3 : ' asymptote horizontale y = 0 return ' ******************************************************************************
argument_sinus_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARGSH(X)" print_target_is form_graph% print " La fonction Argsh(x) (argument sinus hyperbolique de x) est une fonction inverse de la fonction SH(x)":print print " y = argsh(x) est définie quelque soit x; elle est continue et croissante de moins l'infini à plus l'infini.":print print:print " En PANORAMIC la fonction argument sinus hyperbolique de x n'existe pas. Pour l'utiliser faites y = log(x+sqr(x*x+1))" xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = xmin : y = log(x+sqr(x*x+1)) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin to xmax step p x = a : y = log(x+sqr(x*x+1)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
argument_cosinus_hyperbolique:
show form_graph% caption form_graph% , string$(50," ")+" <CLICK> POUR REVENIR" +string$(55," ") + "Y = ARGCH(X)" print_target_is form_graph% print " La fonction Argch(x) (argument cosinus hyperbolique de x) est une fonction inverse de la fonction CH(x)":print print " y = argch(x) est définie quelque soit x >= 1; elle est continue et croissante de 0 à plus l'infini.":print print:print " En PANORAMIC la fonction argument cosinus hyperbolique de x n'existe pas. Pour l'utiliser faites y = log(x+sqr(x*x-1))"
xmin = -4: xmax = 4 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = 1 : y = log(x+sqr(x*x-1)) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = 1 to xmax step p x = a : y = log(x+sqr(x*x-1)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
argument_tangente_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARGTH(X)" print_target_is form_graph% print " La fonction Argth(x) (argument tangente hyperbolique de x) est une fonction inverse de la fonction TH(x)":print print " y = argth(x) est définie dans l'intervalle ]-1, +1[ ; elle est continue et croissante de moins l'infini à plus l'infini.":print print " Elle admet pour asymptotes les droites d'équations x = 1 et x = -1":print print " En PANORAMIC la fonction argument tangente hyperbolique de x n'existe pas. Pour l'utiliser faites y = 1/2 * log((1+x)/(1-x))"
xmin = -4: xmax = 4 : ymin = -1 : ymax = 1 : p = 1 : gosub axes x = -1+ epsilon : y = 0.5*log((1+x)/(1-x)) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,0 : ' asymptote verticale x = -1 for a = -1+epsilon to 1 step p x = a : y = 0.5*log((1+x)/(1-x)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a 2d_poly_to xp,ly : ' asymptote verticale x = +1
return ' ******************************************************************************
argument_cotangente_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARGCOTH(X)" print_target_is form_graph% print " La fonction Argcoth(x) (argument cotangente hyperbolique de x) est une fonction inverse de la fonction COTH(x)":print print " y = argcoth(x) est définie pour x < -1 et x > +1. Elle admet pour asymptotes les droites d'équations x = 1 et x = -1":print print:print " En PANORAMIC la fonction argument cotangente hyperbolique de x n'existe pas. Pour l'utiliser faites y = 1/2 * log((x+1)/(x-1))" xmin = -8: xmax = 8 : ymin = -1 : ymax = 1 : p = 1 : gosub axes x = xmin : y = 0.5*log((1+x)/(x-1)) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp-100,0 for a = xmin to -1 step p : ' Branche pour x < -1 x = a : y = 0.5*log((1+x)/(x-1)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a 2d_poly_to xp,0 : ' asymptote verticale x = -1 x = -1-epsilon : y = 0.5*log((1+x)/(x-1)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4
x = 1+epsilon : y = 0.5*log((1+x)/(x-1)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,ly : ' asymptote verticale x = +1
for a = 1+epsilon to xmax step p : ' Branche pour x > +1 x = a : y = 0.5*log((1+x)/(x-1)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
argument_secante_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARGSECH(X)" print_target_is form_graph% print " La fonction Argsech(x) (argument secante hyperbolique de x) est une fonction inverse de la fonction SECH(x)":print print " y = argsech(x) est définie pour x > 0 et x <= 1":print print " En PANORAMIC la fonction argument secante hyperbolique de x n'existe pas. Pour l'utiliser faites y = log((1+sqr(1-x*x)/x))"
xmin = -4: xmax = 4 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = epsilon : y = log((1+sqr(1-x*x)/x)) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = epsilon to 1 step p x = a : y = log((1+sqr(1-x*x)/x)) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 +10 next a return ' ******************************************************************************
' Argcosech(x) = log(1/x + (x*sqr(1+x*x))/x*x) est définie pour x > 0 argument_cosecante_hyperbolique:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = ARGCOSECH(X)" print_target_is form_graph% print " La fonction Argcosech(x) (argument cosecante hyperbolique de x) est une fonction inverse de la fonction COSECH(x)":print print " y = argsech(x) est définie quelque soit x <> 0":print print:print " En PANORAMIC la fonction argument cosecante hyperbolique de x n'existe pas. " print:print " Pour l'utiliser faites y = log(1 / x + (x * sqr(1 + x * x)) / x * x)"
xmin = -4: xmax = 4 : ymin = -2 : ymax = 2 : p = 1 : gosub axes x = epsilon : y = log(1/x + (x*sqr(1+x*x))/x*x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = epsilon to xmax step p : ' branche droite de la courbe x = abs(a) : y = log(1/x + (x*sqr(1+x*x))/x*x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
x = epsilon : y = log(1/x + (x*sqr(1+x*x))/x*x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) xp = lx-xp : yp = ly -yp 2d_poly_from xp,yp/2+ly/4 : ' branche gauche de la courbe for a = epsilon to xmax step p x = a : y = log(1/x + (x*sqr(1+x*x))/x*x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) xp = lx-xp : yp = ly -yp 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
sinus_cardinal: show form_graph% caption form_graph% , string$(50," ")+" <CLICK> POUR REVENIR" +string$(55," ") + "Y = SINC(X)" print_target_is form_graph% print " Le sinus cardinal est une fonction spéciale utilisée dans des problèmes de physique ondulatoire":print print " Son graphe est appelé 'chapeau mexicain' à cause de la forme de sa courbe en 3D.":print print " La fonction sinus cardinal est définie par SINC(x) = SIN(x)/x":print print:print " En PANORAMIC cette fonction n'existe pas. Pour l'utiliser faites y = SIN(x) / x"
xmin = -20 : xmax = 20 : ymin = -.5 : ymax = .5 : p = 2 : gosub axes x = xmin : y = sin(x)/x : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin+p to xmax step p x = a : y = sin(x)/x xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
sinus_cardinal_normalise:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = SINCN(X)" print_target_is form_graph% print " La fonction sinus cardinal normalisé est définie par SINCN(x) = SIN(pi*x)/pi*x":print print:print " En PANORAMIC cette fonction n'existe pas. Pour l'utiliser faites y = SIN( pi * x ) / pi * x"
xmin = -20 : xmax = 20 : ymin = -.5 : ymax = .5 : p = 2 : gosub axes x = xmin : y = sin(pi*x)/(pi*x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin+p to xmax step p x = a : y = sin(pi*x)/(pi*x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
logarithme_neperien:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = LOG(X)" print_target_is form_graph% print " La fonction LOG(x) (logarithme népérien de x) est définie et continue pour tout x > 0":print print " Elle est croissante de moins l'infini à plus l'infini. Elle s'annule pour x = 1":print print " Elle prend la valeur 1 pour x = e = 2.71828182845905":print print " la valeur e = exp(1) est appelé ' base des logarithmes népériens '":print print " Elle admet pour asymptote l'axe des y":print print:print " En PANORAMIC, la fonction logarithme népérien de x est notée LOG(x)"
xmin = -10 : xmax = 10 : ymin = -2 : ymax = 2 : p = 1 :gosub axes x = epsilon : y = log(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = epsilon to xmax step p x = a : y = log(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
logarithme_decimal:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = LOG10(X)" print_target_is form_graph% print " La fonction LOG10(x) (logarithme décimal de x) , est appelé aussi logarithme vulgaire ou à base 10":print print " Elle est définie et continue pour tout x > 0":print print " Elle est croissante de moins l'infini à plus l'infini. Elle s'annule pour x = 1":print print " Elle admet pour asymptote l'axe des y":print print:print " En PANORAMIC, la fonction logarithme décimal de x est notée LOG10(x)"
xmin = -10 : xmax = 10 : ymin = -2 : ymax = 2 : p = 1 :gosub axes x = epsilon : y = log10(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = epsilon to xmax step p x = a : y = log10(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ******************************************************************************
logarithme_binaire:
show form_graph% caption form_graph% , string$(50," ")+" <CLICK> POUR REVENIR" +string$(55," ") + "Y = LOG2(X)" print_target_is form_graph% print " La fonction LOG2(x) (logarithme binaire de x ou à base 2) est définie et continue pour tout x > 0":print print " !!! A T T E N T I O N !!!":print print " Il ne s'agit pas de l'écriture en binaire(0,1) du résultat, mais de la base 2":print print " Elle est croissante de mois l'infini à plus l'infini. Elle s'annule pour x = 1. Elle admet pour asymptote l'axe des y":print print " Pour toute autre base a, la fonction logarithmique de base a est notée LOGa(x) = LOG(x)/LOG(a)":print print :print " En PANORAMIC, la fonction logarithme binaire de x est notée LOG2(x)"
xmin = -10 : xmax = 10 : ymin = -2 : ymax = 2 : p = 1 :gosub axes
x = epsilon : y = log2(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = epsilon to xmax step p x = a : y = log2(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return
' ******************************************************************************
exponentielle:
show form_graph% caption form_graph% ,string$(50," ")+" <CLICK> POUR REVENIR" + string$(55," ") + "Y = EXP(X)" print_target_is form_graph% print " La fonction EXP(x) (exponentielle de x) est définie et continue quelque soit x":print print " La fonction EXP(x) croît de 0 au-dessus à plus l'infini. L'axe des x est donc asymptote à la courbe représentative de y = exp(x)":print print:print " En PANORAMIC la fonction exponentielle est notée EXP(x)"
xmin = -4 : xmax = 4 : ymin = -5 : ymax = 5 : p = 1 :gosub axes x = xmin : y = exp(x) : p = pi/180 xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_from xp,yp/2+ly/4 for a = xmin to xmax step p x = a : y = exp(x) xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin) 2d_poly_to xp,yp/2+ly/4 next a
return ' ****************************************************************************** </pre> </div> <div class="droite"> <h2>Description</h2> <p> La plupart des langages de programmation en général, et PANORAMIC en particulier, ne proposent que quelques unes des fonctions de trigonométrie qui sont certes suffisantes pour déterminer les autres, mais il est nécessaire de savoir comment faire. Le programme que je vous propose contient exactement 30 fonctions.</p> <p> *** 6 fonctions trigonométriques circulaires directes (Sinus, Cosinus, Tangente, Cotangente, Sécante et Cosécante)</p> <p> *** 6 fonctions trigonométriques circulaires inverses ou réciproques (Arc Sinus, Arc Cosinus, Arc Tangente, Arc Cotangente, Arc Sécante et Arc Cosécante)</p> <p> *** 6 fonctions trigonométriques hyperboliques directes (Sinus Hyperbolique, Cosinus Hyperbolique, Tangente Hyperbolique, Cotangente Hyperbolique, Sécante Hyperbolique et Cosécante Hyperbolique)</p> <p> *** 6 fonctions trigonométriques hyperboliques inverses ou réciproques (Argument Sinus Hyperbolique, Argument Cosinus Hyperbolique, Argument Tangente Hyperbolique, Argument Cotangente Hyperbolique, Argument Sécante Hyperbolique et Argument Cosécante Hyperbolique)</p> <p> *** 6 fonctions diverses (Sinus Cardinal, Sinus Cardinal Normalisé, Logarithme Népérien, Logarithme Décimal, Logarithme Binaire et Exponentielle)</p>
</div> <hr> </div> <p>édité le 15/05/2011.</p> </body> </html>
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 7:02 | |
| Tout à fait Nardo, j'ai vu ton post quand j'avais terminé de rajouter les commentaires dans la page, mais ta méthode est jolie e très rapide pour la mise à jour d'un source. En plus elle permet facilement de garder la mise en page (indentation, alignement, ...). Pour le problème d'IE, on sait qu'IE ne respecte pas les normes ... tant pis. Il parait que ce sera mieux avec IE 10. Je demande à voir Au fait dans les auteurs, il faudrait ajouter Klaus, c'est qu'en même son programme que j'ai modifié... | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 10:29 | |
| Bonjour, Suite au tuto de Papydall qui fait quand même quelques lignes... je me suis vite aperçu que la mise en page initiale n'était pas vraiment adaptée... donc j'ai modifié celle-ci: Tuto 1: Jicehel- Spoiler:
- Code:
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <meta name="description" content="Collision en 3d"/> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <meta name="author" content="Jicehel"/> <title>Panoramic</title> <style type="text/css"> body{margin:1em 8em 0;font-family:"georgia",serif;} h1{color:black;font-weight:bold;text-align:left;} h2{color:blue;} p{text-align:justify;} textarea{max-height:30em;height:30em;width:100%;border:1px solid #AAA;background:#DDD;} .note{color: green;font-size: small; font-style: italic;} .button{float:right;} </style> </head> <body>
<h1>Collision en 3d, déplacement d'un Cube 3D au clavier</h1> <!-- *************************************************************************** * D E S C R I P T I O N ******************************************************************************** --> <h2>Description</h2> <p>Dans ce programme écrit par Jicehel, on fait bouger un cube au clavier puis on gére sa collision avec un autre cube.</p>
<!-- *************************************************************************** * S O U R C E P A N O R A M I C ******************************************************************************** --> <h2>Code</h2> <?php $filename = 'tuto1.bas'; if (file_exists($filename)) echo '<span class="note">(dernière modification ' . datefr (filemtime($filename)).')</span>'; ?> <div class="container"> <input class="button" type="button" value="Sélection du code" onClick="selectext()"> <!-- l'attribut wrap ne me plait pas (obsolète) mais je n'ai pas trouvé d'autre solution --> <textarea readonly="readonly" id="code" wrap="off"> <?php include "tuto1.bas"; ?> </textarea> </div> <!-- ***************************************************************************
******************************************************************************** --> <script type="text/javascript">function selectext(){document.getElementById("code").select()}</script> </body> </html> <?php /*--------------------------------------------------------------------*/ /* Mise en format francais d'une date */ /* Auteur: Nardo26 */ /* les setlocale(LC_TIME, "fr-FR") et autres saloperies du même genre */ /* ne fonctionnent pas... ;) */ /*--------------------------------------------------------------------*/ function datefr($time,$heure=1) { date_default_timezone_set("Europe/Paris"); $t=time();$delta=$t-$time; $mois=array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"); $jour=array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"); /* Si aujourd'hui */ if (date("d-m-Y",$t) ==date("d-m-Y",$time)) { $r="aujourd'hui "; $nb_heure=$delta/3600; echo '<!-- '.$t.' / '.$time.' -->'; if (($t-$time) > 7200) $r.='à '.date("H:i",$time); /* delai superieur à 2 heures */ else { $r.='il y a '; if ($delta/3600>=1) $r.=date("G\hi",$delta); else { $delta-=($delta/3600); if ($delta>=60) $r.=ltrim(date("i",$delta),'0').' min'; else { $delta -=($delta/60); $r.=ltrim(date('s',$delta),'0').'s'; } } } } /* sinon */ else { if (date("d-m-Y",$t-86400) == date("d-m-Y",$time)) $r='Hier '; /* 86400 = 60sx60mnx24h */ else $r=$jour[date("w",$time)].' '.date("d",$time).' '.$mois[date("n",$time)-1]; if (date("Y")!=date("Y",$time)) $r.=' '.date("Y",$time); // on rajoute l'année si nécessaire if ($heure) $r.=date(" à H:i",$time);/* option */ } return $r; } ?>
Tuto 2: Papydall- Spoiler:
- Code:
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <meta name="description" content="TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE"> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta name="author" content="Papydall"> <title>Panoramic</title> <style type="text/css"> body{margin:1em 8em 0;font-family:"georgia",serif;} h1{color:black;font-weight:bold;text-align:left;} h2{color:blue;} p{text-align:justify;} textarea{max-height:30em;height:30em;width:100%;border:1px solid #AAA;background:#DDD;white-space:nowrap;} .note{color: green;font-size: small; font-style: italic;} .button{float:right;} table{background-color:#C0C0C0;width:100%;} th{background:#BBF;font-size:1em;text-align:center;} td{padding:0.5em;background:#EEF;} ul{margin:0;padding-left:1em;} </style>
</head> <body>
<h1>TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE PAR PAPYDALL</h1>
<!-- *************************************************************************** * D E S C R I P T I O N ******************************************************************************** --> <h2>Description</h2>
<p>La plupart des langages de programmation en général, et PANORAMIC en particulier, ne proposent que quelques unes des fonctions de trigonométrie qui sont certes suffisantes pour déterminer les autres, mais il est nécessaire de savoir comment faire. Le programme que je vous propose contient exactement 30 fonctions.</p> <table> <tr> <th>Fonctions trigonométriques circulaires<br>directes</th> <th>Fonctions trigonométriques circulaires<br>inverses ou réciproques</th> </tr> <tr> <td><ul><li>Sinus</li><li>Cosinus</li><li>Tangente</li><li>Cotangente</li><li>Sécante</li><li>Cosécante</li></ul></td> <td><ul><li>Arc Sinus</li><li>Arc Cosinus</li><li>Arc Tangente</li><li>Arc Cotangente</li><li>Arc Sécante</li><li>Arc Cosécante</li></ul></td> </tr> </table>
<table> <tr> <th>Fonctions trigonométriques hyperboliques<br>directes</th> <th>Fonctions trigonométriques hyperboliques<br>inverses ou réciproques</th> <th>Fonctions diverses</th> </tr> <tr> <td><ul><li>Sinus Hyperbolique</li><li>Argument Cosinus Hyperbolique</li><li>Argument Tangente Hyperbolique</li><li>Argument Cotangente Hyperbolique</li><li>Argument Sécante Hyperbolique</li><li>Argument Cosécante Hyperbolique</li></ul></td> <td><ul><li>Argument Sinus Hyperbolique</li><li>Cosinus Hyperbolique</li><li>Tangente Hyperbolique</li><li>Cotangente Hyperbolique</li><li>Sécante Hyperbolique</li><li>Cosécante Hyperbolique</li></ul></td> <td><ul><li>Sinus Cardinal</li><li>Sinus Cardinal Normalisé</li><li>Logarithme Népérien</li><li>Logarithme Décimal</li><li>Logarithme Binaire</li><li>Exponentielle</li></ul></td> </tr> </table>
<!-- *************************************************************************** * S O U R C E P A N O R A M I C ******************************************************************************** -->
<h2>Code</h2> <?php $filename = 'tuto2.bas'; if (file_exists($filename)) echo '<span class="note">(dernière modification ' . datefr (filemtime($filename)).')</span>'; ?> <!-- l'attribut wrap ne me plait pas (obsolète) mais je n'ai pas trouvé d'autre solution --> <div class="container"> <input class="button" type="button" value="Sélection du code" onClick="selectext()"> <textarea readonly="readonly" id="code" wrap="off"> <?php include "tuto2.bas"; ?> </textarea> </div> <hr> <p>édité le 15/05/2011.</p> <script type="text/javascript">function selectext(){document.getElementById("code").select()}</script> </body> </html> <?php /*--------------------------------------------------------------------*/ /* Mise en format francais d'une date */ /* Auteur: Nardo26 */ /* les setlocale(LC_TIME, "fr-FR") et autres saloperies du même genre */ /* ne fonctionnent pas... ;) */ /*--------------------------------------------------------------------*/ function datefr($time,$heure=1) { $t=time();$delta=$t-$time; $mois=array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"); $jour=array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"); /* Si aujourd'hui */ if (date("d-m-Y",$t) ==date("d-m-Y",$time)) { $r="aujourd'hui "; $nb_heure=$delta/3600; if ($t-$time > 7200) $r.='à '.date("H:i",$time); /* delai superieur à 2 heures */ else { $r.='il y a '; if ($delta/3600>=1) $r.=date("G\hi",$delta); else { $delta-=($delta/3600); if ($delta>=60) $r.=ltrim(date("i",$delta),'0').' min'; else { $delta -=($delta/60); $r.=ltrim(date('s',$delta),'0').'s'; } } } } /* sinon */ else { date_default_timezone_set("Europe/Paris"); if (date("d-m-Y",$t-86400) == date("d-m-Y",$time)) $r='Hier '; /* 86400 = 60sx60mnx24h */ else $r=$jour[date("w",$time)].' '.date("d",$time).' '.$mois[date("n",$time)-1]; if (date("Y")!=date("Y",$time)) $r.=' '.date("Y",$time); // on rajoute l'année si nécessaire if ($heure) $r.=date(" à H:i",$time);/* option */ } return $r; } ?>
Cela fonctionne sur tous les navigateurs (à l'exception de Netscape, il en fallait bien un...) J'en ai profité pour simplifier encore plus le boulot de jpcr... Dans le répertoire, dans lequel il y a les tutos, on retrouve: - le fichier php qui représente la page qui s'affiche sur le navigateur - le fichier bas qui contient le code source Panoramic Pour ceux qui veulent tester/modifier en local sur leur disque dur (et qui n'ont pas de serveur apache), il faut : - changer l'extension php en htm - remplacer cette ligne : - Code:
-
<?php include "tuto1.bas"; ?> par le code en basic panoramic (même principe que pour les balises <pre>) La démo se trouve ici: tuto 1tuto 2Note : je précise que c'est pour aider jpcr, si il veut bien s'occuper de l’hébergement c'est pour cette raison que j'ai cherché à "coller" au plus près la mise en page par rapport à son site... Pour ma part, j'ai mon propre site, avec sa propre mise en page...
Dernière édition par Nardo26 le Mer 24 Oct 2012 - 13:03, édité 1 fois (Raison : Mise à jour automatique de la date d'édition du fichier Panoramic) | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 11:55 | |
| oula , ça en fait de la lecture.....
je suis un peu pommé la...
jp | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 13:08 | |
| En fait JP, Nardo t'a donné une structure de page pour gagner du temps pour la mise à jour de ton site. L'avantage, c'est que ce fond de page est fait une fois pour toute et marche par bloc. Après, tu peux le remplir par un simple copier / coller de bloc texte (code source par exemple)
Note: Il faudrait rajouter sur ces pages un bouton retour au sommaire, je trouve ou mieux mais plus compliqué, un menu en haut permettant de naviguer vers le sommaire ou un autre tuto | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 13:17 | |
| Salut jp ! J'ai revu la mise en page des 2 derniers exemples car le code de Papydall est assez conséquent et pour récupérer son code, c'est un peu galère.... Sans compter que la zone réservée pour la description (à droite) est un peu petite... Du coup, je pense qu'il est préférable de mettre d'abord la description et en dessous le code. Donc les dernières modifs: - tiennent compte de ce que j'ai dis au dessus
- J'ai rajouté également un bouton pour pouvoir sélectionner tout le code (pratique quand tu as 400 lignes de code )
- Le code Panoramic se trouve dans un fichier à-part. tu n'as juste qu'a insérer le fichier source dans ton répertoire et mettre à jour le fichier php associé. (c'est plus facile en cas de modif du fichier bas, tu n'as pas à toucher au fichier php)
L'idée c'est d'avoir ceci : - Code:
-
Panoramic | +-- Tutos | +-- tuto1.php | +-- tuto1.bas . +-- tutoN.php | +-- tutoN.bas EDIT / @jicehel : jp a commencé à mettre en place la page principale qui regroupe tous les tutos... Pour la mise en place d'un menu,etc... c'est à jp de voir : c'est son site après tout ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 13:37 | |
| Courage JP, prends le temps de regarder les propositions qui te sont faite, il n'y a pas le feu.... J'ai quelques idées de tutos que je soumettrais à l' approbation des Panoramiciens. Mais laissons en priorité l'élaboration du site A+
Dernière édition par Jean Claude le Mer 24 Oct 2012 - 13:49, édité 1 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 13:42 | |
| !!! Connaisseurs de tout bord, je vous salue !!! | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 13:57 | |
| JP, Pour éviter de pourrir le forum Panoramic, je te propose de continuer cette discussion (au sujet de la mise en place) sur le forum de demenvil qui est plus adapté que le mien (j'ai pas de forum.. ) Je pense qu'il sera d'accord... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 14:01 | |
| Le plus simple dans un premier temps je pense pour faciliter la navigation, c'est de rajouter juste uune bouton sur la page avec le lien vers la page de sommaire (en plus, ça fait partie du modèle, donc ça ne demande pas de modification pour chacune des pages ...). Seul le sommaire est à mettre à jour (à moins que Nardo ne donne une astuce pour que la page de sommaire se mette à jour toute seule ) | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 23:24 | |
| - Jicehel a écrit:
- Le plus simple dans un premier temps je pense pour faciliter la navigation, c'est de rajouter juste uune bouton sur la page avec le lien vers la page de sommaire (en plus, ça fait partie du modèle, donc ça ne demande pas de modification pour chacune des pages ...). Seul le sommaire est à mettre à jour (à moins que Nardo ne donne une astuce pour que la page de sommaire se mette à jour toute seule )
C'est bon la moulinette qui génère de manière automatique le sommaire est prête... (voir demo) il n'y a plus qu'a attendre pour savoir si JP est toujours intéressé... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 23:31 | |
| Heu même moi, je suis intéressé | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Mer 24 Oct 2012 - 23:55 | |
| Le source est dans la demo...
Dernière édition par Nardo26 le Jeu 25 Oct 2012 - 0:30, édité 1 fois (Raison : Mise à jour de l'exemple de tuto : voir demo..) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Jeu 25 Oct 2012 - 0:23 | |
| Vu, c'est super Nardo jpcr, je pense que ça te fera gagner pas mal de maintenance ... Par contre pour le calcul fractal, c'est exprès le source qui ne correspond pas ? Je pourrais me servir de ce genre de code pour faire mes liste de procédures au lieu de mes macros Excel aussi, mais bon, là, on change de sujet alors je m’arrête là pour ne pas dévier des tutos Panoramic. Par contre, je le rappelle, mais les nouveaux qui trouvaient parfois que le forum est un peu trop compliqué, c'est le moment de vous manifestez pour exprimez vos besoins. jpcr se propose pour mettre en ligne des tutoriaux, manifestez vous pour dire ce que vous en pensez, vos attentes, etc ... Il y a déjà tellement de personnes qui ont commencé et qui ont arrêté faute de retour sur ce qu'ils mettaient en ligne... Ce n'est pas par ce que l'on parle (enfin que l'on écrit) que vous vous ne pouvez pas le faire ... | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: debut de site avec tutoriels Jeu 25 Oct 2012 - 11:08 | |
| coucou,
euh Nardo :
Forbidden You don't have permission to access /test/index.php on this server.
bien sur qu'on peut continuer a discuter ailleurs, comme tu veut.
hp | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Jeu 25 Oct 2012 - 11:49 | |
| Bonjour JPCR, Normalement tu as de nouveau accès au lien... | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: debut de site avec tutoriels Jeu 25 Oct 2012 - 16:52 | |
| wow, c super!!!
en plus jai (presque) plus rien a faire a part créer les pages de tuto.
merci Nardo.
jp | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Jeu 25 Oct 2012 - 18:18 | |
| jpcr, si tu as besoin d'aide pour faire des tutos, tu devrais mettre la liste de tous les sujets que tu voudrais aborder. Comme ça tout le monde (enfin ceux qui veulent et qui sont interessé par un sujet) pourrait te proposer son aide sur ces sujets. On a des Papydall, des Klaus, des Jean-Claude, des Jean Debord, des Nardo, des JP35, des Bignono, des minbugs, des Cosmos, etc... (je ne peux pas citer tout le monde et ça n'aurait aucun intéret) qui maitrise plein de domaine et qui pourrait t'aider sur un sujet ou un autre. Mais bon, tu peux aussi vouloir le faire à ton rythme. Perso, j'ai bien envie de te faire un petit pas à pas pour réactualiser le space invaders à la sauce procédures. En faisant une explication pour le score, une pour le déplacement du vaisseau, un pour la gestion du tir, mais il faut que je vois si j'en aurais le temps et si ça ne fait pas un truc trop complexe. Sinon, si tu préfère, je peux expliquer le casse brique 2D ou 3D, selon ce qui t'arrange le plus. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: debut de site avec tutoriels Jeu 25 Oct 2012 - 19:44 | |
| Bonsoir, J'ai apporté quelques amélioration pour faciliter la rédaction des tutos... Allez faire un tour sur la démo... Là on peut dire que je vous ai mâché le boulot !!! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: debut de site avec tutoriels Jeu 25 Oct 2012 - 20:10 | |
| Je regarde tout à l'heure. Jean-Pierre. Il faudrait mettre à jour le lien sur ta page de garde: http://jeanpierre.creis.free.fr/Pour que l'on ait les nouveaux tutos Panoramic | |
| | | Contenu sponsorisé
| Sujet: Re: debut de site avec tutoriels | |
| |
| | | | debut de site avec tutoriels | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |