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 |
|
|
| Table des angles | |
| | |
Auteur | Message |
---|
Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Table des angles Mer 29 Avr 2015 - 9:37 | |
| En géométrie 2D ou 3D, ou bien en trigonométrie, le programmeur a besoin de savoir quelle direction angulaire donner à une droite ou un arc. Pour éviter d’avoir à tâtonner, ce qui est une perte de temps, j’ai imaginé une table qui permet de trouver rapidement quel angle donner à une droite ou à un arc de cercle par rapport à sa situation sur le papier ou sur l’écran. J’ai disposé circulairement les degrés de 0 à 360 par pas de 9 en sens inverse des aiguilles d’une montre. Après avoir chargé et exécuté le programme, le programmeur s’arrange pour imprimer en format paysage le résultat en grand sur un papier. Il conserve ensuite ce papier sous plastique et bien en vue sur son bureau. La table est ainsi prête à être consultée à n’importe quel moment. - Code:
-
rem Auteur: Parpaiun rem Date-version: 24/04/2015 Caption 0,"Table des angles de direction en degrés" dim ax,ay,cs,cx,cy,i,j,k,n,px,py,rad,ray,ss,th,x,y,zh rem rem Construction de la flèche n=40 dim mx(n),my(n) cx = 290 : cy = 220 droite(cx,cy,20,90,1) px = x : py = y droite(x,y,10,225,1) droite(px,py,10,315,1) rem print_locate 2,2 : print "Nombre de k = ";k rem message "Est ce correct ?" cls rem Affichage circulaire des degrés rad = 3.14159265 / 180 cx = 280 : cy = 215 : ray = 195 for th = 0 to 351 step 9 ax = cx + ray * cos(th * rad) ay = cy + ray * sin(th * -1 * rad) print_locate ax,ay : print th next th
rem Rosace de lignes simples cx = 290 : cy = 220 ray = 150 for th = 0 to 360 step 45 x = cx + ray * cos(th * rad) y = cy + ray * sin(th * rad) 2d_line cx,cy,x,y next th
rem Rosace de lignes suivies de flèches ray = 160 print_locate 1,2 : print "Valeurs des angles affichés en degrés" for th = 0 to 360 step 9 px = cx + ray * cos(th * rad) py = cy + ray * sin(th * -1 * rad) for j = 1 to k x = mx(j) : y = my(j) rot(th) echel(1) 2d_point px + x, py + y next j zh = 360 - th ax = cx - 9 + (ray + 40) * cos(zh * rad) ay = cy - 5 + (ray + 40) * sin(zh * rad) next th end
sub droite(dx,dy,dl,da,dt) rad = 3.14159265 / 180 da = da * rad for i = 1 to dl dx = dx + cos(da) dy = dy - sin(da) if dt = 1 then 2d_point dx,dy k = k + 1 : mx(k) = dx - cx : my(k) = dy - cy next i x = dx : y = dy END_SUB
sub rot(ang) dim_local ux,uy ang = (90 - ang) * rad cs = cos(ang) : ss = sin(ang) ux = x * cs - y * ss uy = x * ss + y * cs x = ux : y = uy END_SUB
sub echel(e) x = x * e : y = y * e END_SUB Vous aurez remarqué que j'ai défini une procédure sous le nom d'ECHEL. Pourquoi ? Eh bien parce que SCALE est un mot réservé en GFA Basic, package d'où est issu ce programme. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Mer 29 Avr 2015 - 12:44 | |
| tu devrais faire une version avec affichage des valeur en degrés / grades / radians ? (tant qu'à faire et à garder une feuille autant qu'elle soit la plus exhaustive possible, qu'en penses-tu ?) | |
| | | Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Table des angles Mer 29 Avr 2015 - 13:32 | |
| Bien reçu ton message, Jicehel, merci. Truffer le dessin de repères angulaires en degrés / grades / radians serait le compliquer et le rendre peu lisible ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Mer 29 Avr 2015 - 15:00 | |
| C'est là que l'on compte sur ton talent et ton imagination Sinon, autant piquer le bon vieux rapporteur de son fiston ..... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Mer 29 Avr 2015 - 16:58 | |
| | |
| | | Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Table des angles Mer 29 Avr 2015 - 20:52 | |
| Grand merci JICEHEL pour m'avoir transmis les trois images dont deux abaques et un rapporteur ! C'est bien pour la première fois que je vois la première image extraordinairement complexe de ce superbe abaque à trois angles. J'avoue me sentir incapable d'obtenir la très haute résolution pour bien distinguer les écarts millimétriques ! Très belle image en vérité ! Je crois que tu as pu voir la "Moire de Kolomyjec" et ces branches extrêmes indiscernables qui prouvent la faiblesse de la résolution de mon écran. Pour cette raison, je ne pense pas pouvoir reproduire l'abaque trois angles par programme. Bonsoir ! de Parpaiun | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Mer 29 Avr 2015 - 21:01 | |
| Ce n'est pas grave non plus Parpaium. Tu trouveras bien d'autres défits à relever. C'est un truc que j'hésite à faire pour le mag: un petit défit dont le résultat serait publié le moi suivant avec un autre défit. Je verrais s'il y a des volontaires. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 2:00 | |
| - Code:
-
' Les angles ' revus par ygeronimi hide 0 Variables() Labels() Gui() show 0 end
SUB Variables() dim_local i% dim no%
dim Pan%(2) : for i%=0 to 2 : no%=no%+1 : Pan%(i%)=no% :next i% dim Alph%(10) : for i%=0 to 10 : no%=no%+1 : Alph%(i%)=no% :next i%
dim Udeg% : no%=no%+1 : Udeg% = no% dim SpUdeg% : no%=no%+1 : SpUdeg% = no% dim Ddeg% : no%=no%+1 : Ddeg% = no% dim SpDdeg% : no%=no%+1 : SpDdeg% = no%
dim Urad% : no%=no%+1 : Urad% = no% dim SpUrad% : no%=no%+1 : SpUrad% = no% dim Drad% : no%=no%+1 : Drad% = no% dim SpDrad% : no%=no%+1 : SpDrad% = no%
dim Ugrd% : no%=no%+1 : Ugrd% = no% dim SpUgrd% : no%=no%+1 : SpUgrd% = no% dim Dgrd% : no%=no%+1 : Dgrd% = no% dim SpDgrd% : no%=no%+1 : SpDgrd% = no% dim visio% : no%=no%+1 : visio% = no% dim Pict% : no%=no%+1 : Pict% = no% dim Pict$ : Pict$ = dir_current$+"\Pict.jpg" dim change% dim degres dim radians dim grades END_SUB
SUB Labels() Label Change END_SUB
SUB Gui() ' form_0 height 0,660 width 0,840 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 Caption 0,"Degrés - Radians - Grades" ' Frame générale
Panel Pan%(0) : full_space Pan%(0) : color Pan%(0),0,130,0 ' Frame paramètres
Panel Pan%(1) : parent Pan%(1),Pan%(0) height Pan%(1),height(Pan%(0)) -10 width Pan%(1),195 top Pan%(1),5 left Pan%(1),5
' modifications en de degrés
Alpha Alph%(1) : Parent Alph%(1),Pan%(1) top Alph%(1),10 left Alph%(1),5 Font_name Alph%(1),"Arial" : Font_size Alph%(1),8 : Font_bold Alph%(1) Font_color Alph%(1),0,0,200 Caption Alph%(1),"Degrés :" Edit Udeg% : parent Udeg%,Pan%(1) top Udeg%,30 left Udeg%,5 width Udeg%,30 Font_name Udeg%,"Times new roman" : Font_size Udeg%,10 : Font_bold Udeg% text Udeg%,"000" Spin SpUdeg% : parent SpUdeg%,Pan%(1) top SpUdeg%,30 left SpUdeg%,width(Udeg%)+5 width SpUdeg%,20 Min SpUdeg%,0 : Max SpUdeg%,361 : Position SpUdeg%,0 On_change SpUdeg%,change Edit Ddeg% : parent Ddeg%,Pan%(1) top Ddeg%,30 left Ddeg%,width(udeg%)+30 width Ddeg%,20 Font_name Ddeg%,"Times new roman" : Font_size Ddeg%,10 : Font_bold Ddeg% Font_color Ddeg%,255,0,0 text Ddeg%,"00" Spin SpDdeg% : parent SpDdeg%,Pan%(1) top SpDdeg%,30 left SpDdeg%,width(Ddeg%)+60 width SpDdeg%,20 cursor_point SpDdeg% Min SpDdeg%,0 : Max SpDdeg%,100 : Position SpDdeg%,0 On_change SpDdeg%,change
' modifications en radians Alpha Alph%(2) : Parent Alph%(2),Pan%(1) top Alph%(2),60 left Alph%(2),5 Font_name Alph%(2),"Arial" : Font_size Alph%(2),8 : Font_bold Alph%(2) Font_color Alph%(2),0,0,200 Caption Alph%(2),"Radians :"
Edit Urad% : parent Urad%,Pan%(1) top Urad%,80 left Urad%,5 width Urad%,30 Font_name Urad%,"Times new roman" : Font_size Urad%,10 : Font_bold Urad% text Urad%,"000"
Spin SpUrad% : parent SpUrad%,Pan%(1) top SpUrad%,80 left SpUrad%,width(Urad%)+5 width SpUrad%,20 Min SpUrad%,0 : Max SpUrad%,7 : position SpUrad%,0 On_change SpUrad%,change
Edit Drad% : parent Drad%,Pan%(1) top Drad%,80 left Drad%,width(urad%)+30 width Drad%,20 Font_name Drad%,"Times new roman" : Font_size Drad%,10 : Font_bold Drad% Font_color Drad%,255,0,0 text Drad%,"00"
Spin SpDrad% : parent SpDrad%,Pan%(1) top SpDrad%,80 left SpDrad%,width(Drad%)+60 width SpDrad%,20 Min SpDrad%,0 : Max SpDrad%,100 : position SpDrad%,0 On_change SpDrad%,change ' modifications en grades
Alpha Alph%(3) : Parent Alph%(3),Pan%(1) top Alph%(3),110 left Alph%(3),5 Font_name Alph%(3),"Arial" : Font_size Alph%(3),8 : Font_bold Alph%(3) Font_color Alph%(3),0,0,200 Caption Alph%(3),"Grades :"
Edit Ugrd% : parent Ugrd%,Pan%(1) top Ugrd%,130 left Ugrd%,5 width Ugrd%,30 Font_name Ugrd%,"Times new roman" : Font_size Ugrd%,10 : Font_bold Ugrd% text Ugrd%,"000"
Spin SpUgrd% : parent SpUgrd%,Pan%(1) top SpUgrd%,130 left SpUgrd%,width(Ugrd%)+5 width SpUgrd%,20 Min SpUgrd%,0 : Max SpUgrd%,401 : Position SpUgrd%,0 On_change SpUgrd%,change
Edit Dgrd% : parent Dgrd%,Pan%(1) top Dgrd%,130 left Dgrd%,width(ugrd%)+30 width Dgrd%,20 Font_name Dgrd%,"Times new roman" : Font_size Dgrd%,10 : Font_bold Dgrd% Font_color Dgrd%,255,0,0 text Dgrd%,"00"
Spin SpDgrd% : parent SpDgrd%,Pan%(1) top SpDgrd%,130 left SpDgrd%,width(Dgrd%)+60 width SpDgrd%,20 Min SpDgrd%,0 : Max SpDgrd%,100 : Position SpDgrd%,0 On_change SpDgrd%,change ' Frame visio
Panel Pan%(2) : parent Pan%(2),Pan%(0) height Pan%(2),height(Pan%(0)) -10 width Pan%(2),width(Pan%(0))-(width(Pan%(1))+15) top Pan%(2),5 Left Pan%(2),Width(Pan%(1))+10 Picture Visio% : Parent visio%,Pan%(2) height visio%,600 width visio%,600 top visio%,5 left visio%,5 color visio%,0,0,0 file_load visio%,Pict$ stretch_on visio% END_SUB
Change: Change% = Number_change if Change% = SpUdeg% : DefineUniteDegres() :end_if if Change% = SpDdeg% : DefineDecimDegres() :end_if if Change% = SpUrad% : DefineUniteRadians() :end_if if Change% = SpDrad% : DefineDecimRadians() :end_if if Change% = SpUgrd% : DefineUniteGrades() :end_if if Change% = SpDgrd% : DefineDecimGrades() :end_if return
SUB DefineUniteDegres() dim_local p%,p$ P%=position(SpUdeg%) if P%=361 off_change SpUdeg% P%=0 Position SpUdeg%,0 on_change SpUdeg%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Udeg%,P$ degres = val(text$(Udeg%))+(val(text$(Ddeg%))/100) ConvertDegresToRadians() ConvertDegresToGrades() END_SUB
SUB DefineDecimDegres() dim_local p%,p$ P%=position(SpDdeg%) if P%=100 off_change SpDdeg% P%=0 Position SpDdeg%,0 on_change SpDdeg%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Ddeg%,P$ degres = val(text$(Udeg%))+(val(text$(Ddeg%))/100) ConvertDegresToRadians() ConvertDegresToGrades() END_SUB
SUB DefineUniteRadians() dim_local p%,p$ P%=position(SpUrad%) if P%=7 off_change SpUrad% P%=0 Position SpUrad%,0 on_change SpUrad%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Urad%,P$ radians = val(text$(Urad%))+(val(text$(Drad%))/100) ConvertRadiansToDegres() ConvertRadiansToGrades() END_SUB
SUB DefineDecimRadians() dim_local p%,p$,m% if position(SpUrad%)=6 m%=29 Max SpDrad%,m% if position(SpDrad%)>28 off_change SpDrad% Position SpDrad%,28 on_change SpDrad%,change text Drad%,"28" end_if else m%=100 Max SpDrad%,m% end_if P%=position(SpDrad%) if P%=m% off_change SpDrad% P%=0 Position SpDrad%,0 on_change SpDrad%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Drad%,P$ radians = val(text$(Urad%))+(val(text$(Drad%))/100) ConvertRadiansToDegres() ConvertRadiansToGrades() END_SUB
SUB DefineUniteGrades() dim_local p%,p$ P%=position(SpUgrd%) if P%=401 off_change SpUgrd% P%=0 Position SpUgrd%,0 on_change SpUgrd%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Ugrd%,P$ grades = val(text$(Ugrd%))+(val(text$(Dgrd%))/100) ConvertGradesToDegres() ConvertGradesToRadians() END_SUB
SUB DefineDecimGrades() dim_local p%,p$ P%=position(SpDgrd%) if P%=100 off_change SpDgrd% P%=0 Position SpDgrd%,0 on_change SpDgrd%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Dgrd%,P$ grades = val(text$(Ugrd%))+(val(text$(Dgrd%))/100) ConvertGradesToDegres() ConvertGradesToRadians() END_SUB
SUB ConvertDegresToRadians() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Radians=(degres*pi)/180 U%=int(Radians) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(radians)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if off_change SpUrad% off_change SpDrad% text Urad%,U$ text Drad%,D$ Position SpUrad%,val(U$) Position SpDrad%,val(D$) on_change SpUrad%,change on_change SpDrad%,change END_SUB
SUB ConvertDegresToGrades() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Grades=(Degres/360)*400 U%=int(Grades) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Grades)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if len(D$)<2 : D$=D$+"0" : end_if off_change SpUgrd% off_change SpDgrd% text Ugrd%,U$ text Dgrd%,D$ Position SpUgrd%,val(U$) Position SpDgrd%,val(D$) on_change SpUgrd%,change on_change SpDgrd%,change END_SUB
SUB ConvertRadiansToDegres() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Degres=(Radians*180)/pi U%=int(Degres) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Degres)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Degres<=360 off_change SpUdeg% off_change SpDdeg% text Udeg%,U$ text Ddeg%,D$ Position SpUdeg%,val(U$) Position SpDdeg%,val(D$) on_change SpUdeg%,change on_change SpDdeg%,change end_if END_SUB
SUB ConvertRadiansToGrades() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Grades=(Radians*200)/pi U%=int(Grades) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Grades)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Grades<=400 off_change SpUgrd% off_change SpDgrd% text Ugrd%,U$ text Dgrd%,D$ Position SpUgrd%,val(U$) Position SpDgrd%,val(D$) on_change SpUgrd%,change on_change SpDgrd%,change end_if END_SUB
SUB ConvertGradesToDegres() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Degres=(Grades*400)/360 U%=int(Degres) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Degres)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if len(D$)<2 : D$=D$+"0" : end_if if Degres<=360 off_change SpUdeg% off_change SpDdeg% text Udeg%,U$ text Ddeg%,D$ Position SpUdeg%,val(U$) Position SpDdeg%,val(D$) on_change SpUdeg%,change on_change SpDdeg%,change end_if END_SUB
SUB ConvertGradesToRadians() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Radians=(Grades*pi)/200 U%=int(Radians) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Radians)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Radians<=6.28 off_change SpUrad% off_change SpDrad% text Urad%,U$ text Drad%,D$ Position SpUrad%,val(U$) Position SpDrad%,val(D$) on_change SpUrad%,change on_change SpDrad%,change end_if END_SUB Si quelqu' un veut s' amuser à allumer les segments... (moi y en a être pas bon du tout en géométrie ) l' image à enregistrer au format *.jpg : - image:
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Jeu 30 Avr 2015 - 2:17 | |
| Tu triches un peu au niveau dessin mais c'est bien pratique quand au résultat | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 2:21 | |
| Salut Jicehel, J' ai une tare, je ne sais pas dessiner... Et encore moins avec des formules mathématiques... Si tu sais, ajoute le au code. dans l' absolu, il faudrait que le segment concerné soit d' une couleur différente... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Table des angles Jeu 30 Avr 2015 - 2:26 | |
| Bon, c'est aussi une autre manière de structurer son programme et une belle illustration des objets PANEL, SPIN, etc..
Ça peut aider les nouveaux.
Merci Ygeronimi. | |
| | | Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Re: Table des angles Jeu 30 Avr 2015 - 9:56 | |
| Salut ygeronimi, j'ai chargé ton programme et essayé de le lancer par le Panoramic Editor. Mais un message impromptu me dit qu'il ne trouve pas l'image. Où dois je la placer ? Merci de me répondre. Parpaiun | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Jeu 30 Avr 2015 - 10:56 | |
| Il faut que tu sauvegarde le source et que tu mette l'image dans le même répertorie sous le nom pict.jpg | |
| | | Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Table des angles Jeu 30 Avr 2015 - 11:45 | |
| OK Jicehel mais "le même répertoire " de quoi ? Je ne saisis pas bien là dessus, pour sûr ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Jeu 30 Avr 2015 - 11:52 | |
| Dans le même répertoire que là où tu auras sauvegardé le programme (le fichier .bas) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 12:29 | |
| Voilà, ils ont tout dit... Tu peux placer le fichier de l' image dans le dossier du fichier source ou Changer l' adresse de la variable Pict$, ligne n° 35, si tu le places ailleurs. Bon l' image est là pour illustrer dans mon cas mais l' objet "picture" qui la contient peut être remplacé par un objet "scene2d" pour la reproduire graphiquement avec des segments de couleurs différentes pour marquer les angles. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 17:01 | |
| Comme je suis un gars un peu têtu...( On ne se moque pas ) Voilà un début du marquage d' un angle. Ce n' est pas au point, il faut que je fasse une rotation anti-horaire et que j' arrive à effacer la ligne précédente... - Code:
-
' Les angles ' par ygeronimi hide 0 Variables() Labels() Gui() show 0 end
SUB Variables() dim_local i% dim no%
dim Pan%(2) : for i%=0 to 2 : no%=no%+1 : Pan%(i%)=no% :next i% dim Alph%(10) : for i%=0 to 10 : no%=no%+1 : Alph%(i%)=no% :next i%
dim Udeg% : no%=no%+1 : Udeg% = no% dim SpUdeg% : no%=no%+1 : SpUdeg% = no% dim Ddeg% : no%=no%+1 : Ddeg% = no% dim SpDdeg% : no%=no%+1 : SpDdeg% = no%
dim Urad% : no%=no%+1 : Urad% = no% dim SpUrad% : no%=no%+1 : SpUrad% = no% dim Drad% : no%=no%+1 : Drad% = no% dim SpDrad% : no%=no%+1 : SpDrad% = no%
dim Ugrd% : no%=no%+1 : Ugrd% = no% dim SpUgrd% : no%=no%+1 : SpUgrd% = no% dim Dgrd% : no%=no%+1 : Dgrd% = no% dim SpDgrd% : no%=no%+1 : SpDgrd% = no% dim visio% : no%=no%+1 : visio% = no% dim Pict% : no%=no%+1 : Pict% = no% dim Pict$ : Pict$ = dir_current$+"\Pict.jpg" dim change% dim degres dim radians dim grades dim Cx,Cy,Ax,Ay,Bx,By,Ray,Ang END_SUB
SUB Labels() Label Change END_SUB
SUB Gui() ' form_0 height 0,660 width 0,840 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 Caption 0,"Degrés - Radians - Grades" ' Frame générale
Panel Pan%(0) : full_space Pan%(0) : color Pan%(0),0,130,0 ' Frame paramètres
Panel Pan%(1) : parent Pan%(1),Pan%(0) height Pan%(1),height(Pan%(0)) -10 width Pan%(1),195 top Pan%(1),5 left Pan%(1),5
' modifications en de degrés
Alpha Alph%(1) : Parent Alph%(1),Pan%(1) top Alph%(1),10 left Alph%(1),5 Font_name Alph%(1),"Arial" : Font_size Alph%(1),8 : Font_bold Alph%(1) Font_color Alph%(1),0,0,200 Caption Alph%(1),"Degrés :" Edit Udeg% : parent Udeg%,Pan%(1) top Udeg%,30 left Udeg%,5 width Udeg%,30 Font_name Udeg%,"Times new roman" : Font_size Udeg%,10 : Font_bold Udeg% text Udeg%,"000" Spin SpUdeg% : parent SpUdeg%,Pan%(1) top SpUdeg%,30 left SpUdeg%,width(Udeg%)+5 width SpUdeg%,20 Min SpUdeg%,0 : Max SpUdeg%,361 : Position SpUdeg%,0 On_change SpUdeg%,change Edit Ddeg% : parent Ddeg%,Pan%(1) top Ddeg%,30 left Ddeg%,width(udeg%)+30 width Ddeg%,20 Font_name Ddeg%,"Times new roman" : Font_size Ddeg%,10 : Font_bold Ddeg% Font_color Ddeg%,255,0,0 text Ddeg%,"00" Spin SpDdeg% : parent SpDdeg%,Pan%(1) top SpDdeg%,30 left SpDdeg%,width(Ddeg%)+60 width SpDdeg%,20 cursor_point SpDdeg% Min SpDdeg%,0 : Max SpDdeg%,100 : Position SpDdeg%,0 On_change SpDdeg%,change
' modifications en radians Alpha Alph%(2) : Parent Alph%(2),Pan%(1) top Alph%(2),60 left Alph%(2),5 Font_name Alph%(2),"Arial" : Font_size Alph%(2),8 : Font_bold Alph%(2) Font_color Alph%(2),0,0,200 Caption Alph%(2),"Radians :"
Edit Urad% : parent Urad%,Pan%(1) top Urad%,80 left Urad%,5 width Urad%,30 Font_name Urad%,"Times new roman" : Font_size Urad%,10 : Font_bold Urad% text Urad%,"000"
Spin SpUrad% : parent SpUrad%,Pan%(1) top SpUrad%,80 left SpUrad%,width(Urad%)+5 width SpUrad%,20 Min SpUrad%,0 : Max SpUrad%,7 : position SpUrad%,0 On_change SpUrad%,change
Edit Drad% : parent Drad%,Pan%(1) top Drad%,80 left Drad%,width(urad%)+30 width Drad%,20 Font_name Drad%,"Times new roman" : Font_size Drad%,10 : Font_bold Drad% Font_color Drad%,255,0,0 text Drad%,"00"
Spin SpDrad% : parent SpDrad%,Pan%(1) top SpDrad%,80 left SpDrad%,width(Drad%)+60 width SpDrad%,20 Min SpDrad%,0 : Max SpDrad%,100 : position SpDrad%,0 On_change SpDrad%,change ' modifications en grades
Alpha Alph%(3) : Parent Alph%(3),Pan%(1) top Alph%(3),110 left Alph%(3),5 Font_name Alph%(3),"Arial" : Font_size Alph%(3),8 : Font_bold Alph%(3) Font_color Alph%(3),0,0,200 Caption Alph%(3),"Grades :"
Edit Ugrd% : parent Ugrd%,Pan%(1) top Ugrd%,130 left Ugrd%,5 width Ugrd%,30 Font_name Ugrd%,"Times new roman" : Font_size Ugrd%,10 : Font_bold Ugrd% text Ugrd%,"000"
Spin SpUgrd% : parent SpUgrd%,Pan%(1) top SpUgrd%,130 left SpUgrd%,width(Ugrd%)+5 width SpUgrd%,20 Min SpUgrd%,0 : Max SpUgrd%,401 : Position SpUgrd%,0 On_change SpUgrd%,change
Edit Dgrd% : parent Dgrd%,Pan%(1) top Dgrd%,130 left Dgrd%,width(ugrd%)+30 width Dgrd%,20 Font_name Dgrd%,"Times new roman" : Font_size Dgrd%,10 : Font_bold Dgrd% Font_color Dgrd%,255,0,0 text Dgrd%,"00"
Spin SpDgrd% : parent SpDgrd%,Pan%(1) top SpDgrd%,130 left SpDgrd%,width(Dgrd%)+60 width SpDgrd%,20 Min SpDgrd%,0 : Max SpDgrd%,100 : Position SpDgrd%,0 On_change SpDgrd%,change ' Frame visio
Panel Pan%(2) : parent Pan%(2),Pan%(0) height Pan%(2),height(Pan%(0)) -10 width Pan%(2),width(Pan%(0))-(width(Pan%(1))+15) top Pan%(2),5 Left Pan%(2),Width(Pan%(1))+10 Picture Visio% : Parent visio%,Pan%(2) height visio%,600 width visio%,600 top visio%,5 left visio%,5 color visio%,0,0,0 file_load visio%,Pict$ stretch_on visio% ' tracer de la ligne 0 Cx=(width(visio%)/2)-12 Cy=(height(visio%)/2) -4 Ax=520 Ay=296 2D_TARGET_IS Visio% 2D_PEN_COLOR 255, 0, 0 2D_PEN_WIDTH 2 2D_LINE Cx,Cy,Ax,Ay END_SUB
Change: Change% = Number_change if Change% = SpUdeg% : DefineUniteDegres() :end_if if Change% = SpDdeg% : DefineDecimDegres() :end_if if Change% = SpUrad% : DefineUniteRadians() :end_if if Change% = SpDrad% : DefineDecimRadians() :end_if if Change% = SpUgrd% : DefineUniteGrades() :end_if if Change% = SpDgrd% : DefineDecimGrades() :end_if return
SUB DefineUniteDegres() dim_local p%,p$ P%=position(SpUdeg%) if P%=361 off_change SpUdeg% P%=0 Position SpUdeg%,0 on_change SpUdeg%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Udeg%,P$ degres = val(text$(Udeg%))+(val(text$(Ddeg%))/100) ConvertDegresToRadians() ConvertDegresToGrades() TraceAngle() END_SUB
SUB DefineDecimDegres() dim_local p%,p$ P%=position(SpDdeg%) if P%=100 off_change SpDdeg% P%=0 Position SpDdeg%,0 on_change SpDdeg%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Ddeg%,P$ degres = val(text$(Udeg%))+(val(text$(Ddeg%))/100) ConvertDegresToRadians() ConvertDegresToGrades() TraceAngle() END_SUB
SUB DefineUniteRadians() dim_local p%,p$ P%=position(SpUrad%) if P%=7 off_change SpUrad% P%=0 Position SpUrad%,0 on_change SpUrad%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Urad%,P$ radians = val(text$(Urad%))+(val(text$(Drad%))/100) ConvertRadiansToDegres() ConvertRadiansToGrades() TraceAngle() END_SUB
SUB DefineDecimRadians() dim_local p%,p$,m% if position(SpUrad%)=6 m%=29 Max SpDrad%,m% if position(SpDrad%)>28 off_change SpDrad% Position SpDrad%,28 on_change SpDrad%,change text Drad%,"28" end_if else m%=100 Max SpDrad%,m% end_if P%=position(SpDrad%) if P%=m% off_change SpDrad% P%=0 Position SpDrad%,0 on_change SpDrad%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Drad%,P$ radians = val(text$(Urad%))+(val(text$(Drad%))/100) ConvertRadiansToDegres() ConvertRadiansToGrades() TraceAngle() END_SUB
SUB DefineUniteGrades() dim_local p%,p$ P%=position(SpUgrd%) if P%=401 off_change SpUgrd% P%=0 Position SpUgrd%,0 on_change SpUgrd%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Ugrd%,P$ grades = val(text$(Ugrd%))+(val(text$(Dgrd%))/100) ConvertGradesToDegres() ConvertGradesToRadians() TraceAngle() END_SUB
SUB DefineDecimGrades() dim_local p%,p$ P%=position(SpDgrd%) if P%=100 off_change SpDgrd% P%=0 Position SpDgrd%,0 on_change SpDgrd%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Dgrd%,P$ grades = val(text$(Ugrd%))+(val(text$(Dgrd%))/100) ConvertGradesToDegres() ConvertGradesToRadians() TraceAngle() END_SUB
SUB ConvertDegresToRadians() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Radians=(degres*pi)/180 U%=int(Radians) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(radians)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if off_change SpUrad% off_change SpDrad% text Urad%,U$ text Drad%,D$ Position SpUrad%,val(U$) Position SpDrad%,val(D$) on_change SpUrad%,change on_change SpDrad%,change END_SUB
SUB ConvertDegresToGrades() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Grades=(Degres/360)*400 U%=int(Grades) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Grades)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if len(D$)<2 : D$=D$+"0" : end_if off_change SpUgrd% off_change SpDgrd% text Ugrd%,U$ text Dgrd%,D$ Position SpUgrd%,val(U$) Position SpDgrd%,val(D$) on_change SpUgrd%,change on_change SpDgrd%,change END_SUB
SUB ConvertRadiansToDegres() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Degres=(Radians*180)/pi U%=int(Degres) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Degres)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Degres<=360 off_change SpUdeg% off_change SpDdeg% text Udeg%,U$ text Ddeg%,D$ Position SpUdeg%,val(U$) Position SpDdeg%,val(D$) on_change SpUdeg%,change on_change SpDdeg%,change end_if END_SUB
SUB ConvertRadiansToGrades() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Grades=(Radians*200)/pi U%=int(Grades) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Grades)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Grades<=400 off_change SpUgrd% off_change SpDgrd% text Ugrd%,U$ text Dgrd%,D$ Position SpUgrd%,val(U$) Position SpDgrd%,val(D$) on_change SpUgrd%,change on_change SpDgrd%,change end_if END_SUB
SUB ConvertGradesToDegres() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Degres=(Grades*400)/360 U%=int(Degres) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Degres)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if len(D$)<2 : D$=D$+"0" : end_if if Degres<=360 off_change SpUdeg% off_change SpDdeg% text Udeg%,U$ text Ddeg%,D$ Position SpUdeg%,val(U$) Position SpDdeg%,val(D$) on_change SpUdeg%,change on_change SpDdeg%,change end_if END_SUB
SUB ConvertGradesToRadians() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Radians=(Grades*pi)/200 U%=int(Radians) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Radians)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Radians<=6.28 off_change SpUrad% off_change SpDrad% text Urad%,U$ text Drad%,D$ Position SpUrad%,val(U$) Position SpDrad%,val(D$) on_change SpUrad%,change on_change SpDrad%,change end_if END_SUB
SUB TraceAngle() Ray=Ax-290 Ang=Radians Bx=Cx+(Ray*cos(Ang)) By=Cy+(Ray*sin(Ang)) 2D_TARGET_IS Visio% 2D_PEN_COLOR 255, 0, 0 2D_LINE Cx,Cy,Bx,By END_SUB L' image est la même. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Table des angles Jeu 30 Avr 2015 - 18:15 | |
| Effacer une ligne dans un picture ? Copie le picture dans un image par 2D_IMAGE_COPY, avant de tracer la ligne. Puis, pour l'effacer, tu rappelles l'image sauvegardée par 2D_IMAGE_PASTE, et le tour est joué. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 21:28 | |
| Merci Klaus ! Je vais appliquer. Là je cherche à passer en anti-horaire. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 22:35 | |
| Bon, il n' plus que les deux segments : - Code:
-
' Les angles ' par ygeronimi hide 0 Variables() Labels() Gui() show 0 end
SUB Variables() dim_local i% dim no%
dim Pan%(2) : for i%=0 to 2 : no%=no%+1 : Pan%(i%)=no% :next i% dim Alph%(10) : for i%=0 to 10 : no%=no%+1 : Alph%(i%)=no% :next i%
dim Udeg% : no%=no%+1 : Udeg% = no% dim SpUdeg% : no%=no%+1 : SpUdeg% = no% dim Ddeg% : no%=no%+1 : Ddeg% = no% dim SpDdeg% : no%=no%+1 : SpDdeg% = no%
dim Urad% : no%=no%+1 : Urad% = no% dim SpUrad% : no%=no%+1 : SpUrad% = no% dim Drad% : no%=no%+1 : Drad% = no% dim SpDrad% : no%=no%+1 : SpDrad% = no%
dim Ugrd% : no%=no%+1 : Ugrd% = no% dim SpUgrd% : no%=no%+1 : SpUgrd% = no% dim Dgrd% : no%=no%+1 : Dgrd% = no% dim SpDgrd% : no%=no%+1 : SpDgrd% = no% dim visio% : no%=no%+1 : visio% = no% dim Pict% : no%=no%+1 : Pict% = no% dim Pict$ : Pict$ = dir_current$+"\Pict.jpg" dim change% dim degres dim radians dim grades dim Cx,Cy,Ax,Ay,Bx,By,Ray,Ang END_SUB
SUB Labels() Label Change END_SUB
SUB Gui() ' form_0 height 0,660 width 0,840 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 Caption 0,"Degrés - Radians - Grades" ' Frame générale
Panel Pan%(0) : full_space Pan%(0) : color Pan%(0),0,130,0 ' Frame paramètres
Panel Pan%(1) : parent Pan%(1),Pan%(0) height Pan%(1),height(Pan%(0)) -10 width Pan%(1),195 top Pan%(1),5 left Pan%(1),5
' modifications en de degrés
Alpha Alph%(1) : Parent Alph%(1),Pan%(1) top Alph%(1),10 left Alph%(1),5 Font_name Alph%(1),"Arial" : Font_size Alph%(1),8 : Font_bold Alph%(1) Font_color Alph%(1),0,0,200 Caption Alph%(1),"Degrés :" Edit Udeg% : parent Udeg%,Pan%(1) top Udeg%,30 left Udeg%,5 width Udeg%,30 Font_name Udeg%,"Times new roman" : Font_size Udeg%,10 : Font_bold Udeg% text Udeg%,"000" Spin SpUdeg% : parent SpUdeg%,Pan%(1) top SpUdeg%,30 left SpUdeg%,width(Udeg%)+5 width SpUdeg%,20 Min SpUdeg%,0 : Max SpUdeg%,361 : Position SpUdeg%,0 On_change SpUdeg%,change Edit Ddeg% : parent Ddeg%,Pan%(1) top Ddeg%,30 left Ddeg%,width(udeg%)+30 width Ddeg%,20 Font_name Ddeg%,"Times new roman" : Font_size Ddeg%,10 : Font_bold Ddeg% Font_color Ddeg%,255,0,0 text Ddeg%,"00" Spin SpDdeg% : parent SpDdeg%,Pan%(1) top SpDdeg%,30 left SpDdeg%,width(Ddeg%)+60 width SpDdeg%,20 cursor_point SpDdeg% Min SpDdeg%,0 : Max SpDdeg%,100 : Position SpDdeg%,0 On_change SpDdeg%,change
' modifications en radians Alpha Alph%(2) : Parent Alph%(2),Pan%(1) top Alph%(2),60 left Alph%(2),5 Font_name Alph%(2),"Arial" : Font_size Alph%(2),8 : Font_bold Alph%(2) Font_color Alph%(2),0,0,200 Caption Alph%(2),"Radians :"
Edit Urad% : parent Urad%,Pan%(1) top Urad%,80 left Urad%,5 width Urad%,30 Font_name Urad%,"Times new roman" : Font_size Urad%,10 : Font_bold Urad% text Urad%,"000"
Spin SpUrad% : parent SpUrad%,Pan%(1) top SpUrad%,80 left SpUrad%,width(Urad%)+5 width SpUrad%,20 Min SpUrad%,0 : Max SpUrad%,7 : position SpUrad%,0 On_change SpUrad%,change
Edit Drad% : parent Drad%,Pan%(1) top Drad%,80 left Drad%,width(urad%)+30 width Drad%,20 Font_name Drad%,"Times new roman" : Font_size Drad%,10 : Font_bold Drad% Font_color Drad%,255,0,0 text Drad%,"00"
Spin SpDrad% : parent SpDrad%,Pan%(1) top SpDrad%,80 left SpDrad%,width(Drad%)+60 width SpDrad%,20 Min SpDrad%,0 : Max SpDrad%,100 : position SpDrad%,0 On_change SpDrad%,change ' modifications en grades
Alpha Alph%(3) : Parent Alph%(3),Pan%(1) top Alph%(3),110 left Alph%(3),5 Font_name Alph%(3),"Arial" : Font_size Alph%(3),8 : Font_bold Alph%(3) Font_color Alph%(3),0,0,200 Caption Alph%(3),"Grades :"
Edit Ugrd% : parent Ugrd%,Pan%(1) top Ugrd%,130 left Ugrd%,5 width Ugrd%,30 Font_name Ugrd%,"Times new roman" : Font_size Ugrd%,10 : Font_bold Ugrd% text Ugrd%,"000"
Spin SpUgrd% : parent SpUgrd%,Pan%(1) top SpUgrd%,130 left SpUgrd%,width(Ugrd%)+5 width SpUgrd%,20 Min SpUgrd%,0 : Max SpUgrd%,401 : Position SpUgrd%,0 On_change SpUgrd%,change
Edit Dgrd% : parent Dgrd%,Pan%(1) top Dgrd%,130 left Dgrd%,width(ugrd%)+30 width Dgrd%,20 Font_name Dgrd%,"Times new roman" : Font_size Dgrd%,10 : Font_bold Dgrd% Font_color Dgrd%,255,0,0 text Dgrd%,"00"
Spin SpDgrd% : parent SpDgrd%,Pan%(1) top SpDgrd%,130 left SpDgrd%,width(Dgrd%)+60 width SpDgrd%,20 Min SpDgrd%,0 : Max SpDgrd%,100 : Position SpDgrd%,0 On_change SpDgrd%,change ' Frame visio
Panel Pan%(2) : parent Pan%(2),Pan%(0) height Pan%(2),height(Pan%(0)) -10 width Pan%(2),width(Pan%(0))-(width(Pan%(1))+15) top Pan%(2),5 Left Pan%(2),Width(Pan%(1))+10 Picture Visio% : Parent visio%,Pan%(2) height visio%,600 width visio%,600 top visio%,5 left visio%,5 color visio%,0,0,0 file_load visio%,Pict$ stretch_on visio% END_SUB
Change: Change% = Number_change if Change% = SpUdeg% : DefineUniteDegres() :end_if if Change% = SpDdeg% : DefineDecimDegres() :end_if if Change% = SpUrad% : DefineUniteRadians() :end_if if Change% = SpDrad% : DefineDecimRadians() :end_if if Change% = SpUgrd% : DefineUniteGrades() :end_if if Change% = SpDgrd% : DefineDecimGrades() :end_if return
SUB DefineUniteDegres() dim_local p%,p$ P%=position(SpUdeg%) if P%=361 off_change SpUdeg% P%=0 Position SpUdeg%,0 on_change SpUdeg%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Udeg%,P$ degres = val(text$(Udeg%))+(val(text$(Ddeg%))/100) ConvertDegresToRadians() ConvertDegresToGrades() TraceAngle() END_SUB
SUB DefineDecimDegres() dim_local p%,p$ P%=position(SpDdeg%) if P%=100 off_change SpDdeg% P%=0 Position SpDdeg%,0 on_change SpDdeg%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Ddeg%,P$ degres = val(text$(Udeg%))+(val(text$(Ddeg%))/100) ConvertDegresToRadians() ConvertDegresToGrades() TraceAngle() END_SUB
SUB DefineUniteRadians() dim_local p%,p$ P%=position(SpUrad%) if P%=7 off_change SpUrad% P%=0 Position SpUrad%,0 on_change SpUrad%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Urad%,P$ radians = val(text$(Urad%))+(val(text$(Drad%))/100) ConvertRadiansToDegres() ConvertRadiansToGrades() TraceAngle() END_SUB
SUB DefineDecimRadians() dim_local p%,p$,m% if position(SpUrad%)=6 m%=29 Max SpDrad%,m% if position(SpDrad%)>28 off_change SpDrad% Position SpDrad%,28 on_change SpDrad%,change text Drad%,"28" end_if else m%=100 Max SpDrad%,m% end_if P%=position(SpDrad%) if P%=m% off_change SpDrad% P%=0 Position SpDrad%,0 on_change SpDrad%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Drad%,P$ radians = val(text$(Urad%))+(val(text$(Drad%))/100) ConvertRadiansToDegres() ConvertRadiansToGrades() TraceAngle() END_SUB
SUB DefineUniteGrades() dim_local p%,p$ P%=position(SpUgrd%) if P%=401 off_change SpUgrd% P%=0 Position SpUgrd%,0 on_change SpUgrd%,change end_if P$=str$(P%) P$=string$(4-len(P$),"0")+P$ P$=right$(P$,3) text Ugrd%,P$ grades = val(text$(Ugrd%))+(val(text$(Dgrd%))/100) ConvertGradesToDegres() ConvertGradesToRadians() TraceAngle() END_SUB
SUB DefineDecimGrades() dim_local p%,p$ P%=position(SpDgrd%) if P%=100 off_change SpDgrd% P%=0 Position SpDgrd%,0 on_change SpDgrd%,change end_if P$=str$(P%) P$=string$(3-len(P$),"0")+P$ P$=right$(P$,2) text Dgrd%,P$ grades = val(text$(Ugrd%))+(val(text$(Dgrd%))/100) ConvertGradesToDegres() ConvertGradesToRadians() TraceAngle() END_SUB
SUB ConvertDegresToRadians() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Radians=(degres*pi)/180 U%=int(Radians) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(radians)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if off_change SpUrad% off_change SpDrad% text Urad%,U$ text Drad%,D$ Position SpUrad%,val(U$) Position SpDrad%,val(D$) on_change SpUrad%,change on_change SpDrad%,change END_SUB
SUB ConvertDegresToGrades() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Grades=(Degres/360)*400 U%=int(Grades) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Grades)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if len(D$)<2 : D$=D$+"0" : end_if off_change SpUgrd% off_change SpDgrd% text Ugrd%,U$ text Dgrd%,D$ Position SpUgrd%,val(U$) Position SpDgrd%,val(D$) on_change SpUgrd%,change on_change SpDgrd%,change END_SUB
SUB ConvertRadiansToDegres() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Degres=(Radians*180)/pi U%=int(Degres) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Degres)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Degres<=360 off_change SpUdeg% off_change SpDdeg% text Udeg%,U$ text Ddeg%,D$ Position SpUdeg%,val(U$) Position SpDdeg%,val(D$) on_change SpUdeg%,change on_change SpDdeg%,change end_if END_SUB
SUB ConvertRadiansToGrades() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Grades=(Radians*200)/pi U%=int(Grades) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Grades)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Grades<=400 off_change SpUgrd% off_change SpDgrd% text Ugrd%,U$ text Dgrd%,D$ Position SpUgrd%,val(U$) Position SpDgrd%,val(D$) on_change SpUgrd%,change on_change SpDgrd%,change end_if END_SUB
SUB ConvertGradesToDegres() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Degres=(Grades*400)/360 U%=int(Degres) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Degres)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if len(D$)<2 : D$=D$+"0" : end_if if Degres<=360 off_change SpUdeg% off_change SpDdeg% text Udeg%,U$ text Ddeg%,D$ Position SpUdeg%,val(U$) Position SpDdeg%,val(D$) on_change SpUdeg%,change on_change SpDdeg%,change end_if END_SUB
SUB ConvertGradesToRadians() dim_local pi,U%,D%,U$,D$ pi=acos(-1) Radians=(Grades*pi)/200 U%=int(Radians) U$=str$(U%) : U$=string$(4-len(U$),"0")+U$ : U$=right$(U$,3) D%=frac(Radians)*1000 D$=str$(int(D%)) if len(D$)>2 : D$=left$(D$,2): end_if if Radians<=6.28 off_change SpUrad% off_change SpDrad% text Urad%,U$ text Drad%,D$ Position SpUrad%,val(U$) Position SpDrad%,val(D$) on_change SpUrad%,change on_change SpDrad%,change end_if END_SUB
SUB TraceAngle() ' centre de l' image Cx=(width(visio%)/2)-12 Cy=(height(visio%)/2) -4 ' def du Segment A Ax=520 Ay=296 ' def rayon + angle Ray=Ax-290 Ang=Radians*-1 ' def du segment B Bx=Cx+(Ray*cos(Ang)) By=Cy+(Ray*sin(Ang)) ' Init du scene2d/picture File_load Visio%,Pict$ 2D_TARGET_IS Visio% 2D_PEN_COLOR 255, 0, 0 2D_PEN_WIDTH 2 ' tracer de la ligne 0 2D_LINE Cx,Cy,Ax,Ay ' tracer de la ligne d' angle 2D_LINE Cx,Cy,Bx,By END_SUB Edit : ca y est ! l' anti-horaire est en place...
Dernière édition par ygeronimi le Jeu 30 Avr 2015 - 22:58, édité 2 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Jeu 30 Avr 2015 - 22:45 | |
| bravo Ygeronimi, c'est très bon. Par contre, je crois que par convention, normalement, le ségment devrait tourné dans le sens contraire des aiguilles d'une montre, mais bon c'est un détail | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 22:48 | |
| Oui Jicehel ! je viens s' éditer au dessus, c' est fait ! ( Pour pas tout recharger, dans la derniere sub tu mets : Ang=Radians*-1 à la place de la ligne 475 ) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Table des angles Ven 1 Mai 2015 - 0:19 | |
| Parfait, j'ai aussi supprimé la ligne 479 (caption 0 qui sauf erreur de ma part ne sert que pour le debug ?) | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Table des angles Ven 1 Mai 2015 - 0:43 | |
| En trigonométrie, les angles peuvent-être négatifs. On doit pouvoir aussi parcourir l’abaque dans le sens horaire (sens négatif) Modifiez ces deux lignes : Ligne 91 - Code:
-
Min SpUdeg%,0-360 : Max SpUdeg%,361 : Position SpUdeg%,0 Ligne 217 - Code:
-
P%=position(SpUdeg%) : if p% < 0 then p% = 360 + p% Dans le SPIN sous Degrés, cliquez sur la flèche en bas, vous parcourrez l’abaque dans le sens horaire | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 1 Mai 2015 - 1:35 | |
| @ Jicehel, Effectivement, c' était une ligne de debug/verif @ Papydall, Si tu ne change que ces deux lignes, tu cours au bug ! Il te faut changer tous les objets "Spin", le plus complexe étant celui des décimals pour les radians, puisqu' ils agissent les uns sur les autres. | |
| | | Contenu sponsorisé
| Sujet: Re: Table des angles | |
| |
| | | | Table des angles | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |