Forum Liberty Basic France
• Index
Ne sachant pas trop où poser ce truc, je le mets là... en espérant que ça va pas gener la circulation.
Que fait ce code ?
Il retourne l'image de 180° sans autorisation, et la ratatine dans le sens de la hauteur.
en fait, qu'il fait un peu ce qu'il veut.
Mais comme c'est zouli, il a la vie sauve.
Cassiope... si tu trouve un vieux compresseur dans ton hangar, regonfle donc ce machin, ( en restant dans les limites d'élasticité )
Code JB :

Que fait ce code ?
Il retourne l'image de 180° sans autorisation, et la ratatine dans le sens de la hauteur.
en fait, qu'il fait un peu ce qu'il veut.

Mais comme c'est zouli, il a la vie sauve.
Cassiope... si tu trouve un vieux compresseur dans ton hangar, regonfle donc ce machin, ( en restant dans les limites d'élasticité )

Code JB :
NoMainWin Dim p(3,1) WindowWidth = 535 WindowHeight = 465 UpperLeftX = Int((DisplayWidth-WindowWidth)/2) UpperLeftY = Int((DisplayHeight-WindowHeight)/2) BUTTON #g.calc, "draw", [draw], UL, 460, 50 textbox #g.en, 460, 80, 50, 25 'entrée angle BUTTON #g, "new", [new], UL, 460, 130 Open "Révolution" For Graphics_nsb_nf As #g #g "TrapClose [quit]" #g, "setfocus" [new] Print #g.en, str$(25) 'angle par défaut Print #g,"when leftButtonDown [coord]" #g,"down" #g,"Fill darkgreen" #g,"Color white; BackColor darkgreen" Print text(460,120,"Angle") Print text(100,420,"Poser des points le long de l'axe") dim r(24): dim h(36): dim v(36) p=0.9: xc=20: yc=1: pi= 3.1416:x=200 #g, "up": #g, "goto 200 20": #g, "down" 'tracé de l'axe for i=20 to 360 step 20 #g, "goto ";x;" ";i next i wait [coord] mx = MouseX my = MouseY #g,"Color red; BackColor red; Place ";mx;" ";my #g,"CircleFilled 3" xc= mx/16: yc= my/24 ' résolution > 25 X 80 (à bisto dé naz ) r(yc)=26-xc 'stock rayons yc=yc+1 '[autre] 'autre angle ? wait [draw] print #g.en, "!contents? var$" 'saisie angle de vue an = val(var$) u=sin((an*pi)/180) axe=cos((an*pi)/180) 'visu -------------------- for w=1 to 24 rt=8*r(w) ' 8 yr=200+((12-w)*16*axe) gosub [calc] next w ' goto [autre] wait [calc] #g, "Color green ";" BackColor green" #g, "down" for i =10 TO 360 step 10 lt= i/10 ' 10 x= 200+(rt* sin((i*pi)/180)) xp= 200+(rt*sin(((i+10)*pi)/180)) y= yr+((rt*u)*cos(i*pi/180))*0.9 yp=yr+((rt*u)*cos((i+10)*pi/180))*0.9 #g, "place ";x;" ";y #g, "goto ";xp;" ";yp if w>1 then #g, "goto ";h(lt);" ";v(lt) h(lt)=xp: v(lt)=yp #g, "flush" gosub [paus] next i return ' yr=400-(200+(16*w)-200) wait [paus] timer 10, [temps] wait [temps] timer 0 return [quit] Close #g Function text(x,y,msg$) #g,"Place ";x;" ";y;";|";msg$ End Function
____________________
Roro
Roro
Aprés tests avancés, il s'avère que ce code fait trés exactement le contraire de qu'il devrait.
Il suffisait de le savoir.....
Utilisation: coté gauche: jantes de voiture toutes marques et objets divers. coté droit: verres à pieds et vases à fleurs.
Edité par Roland Le 03/06/2012 à 13h52

Il suffisait de le savoir.....

Utilisation: coté gauche: jantes de voiture toutes marques et objets divers. coté droit: verres à pieds et vases à fleurs.
Edité par Roland Le 03/06/2012 à 13h52
____________________
Roro
Roro
A peine corrigé :
Code VB :
Bien intéressant.
Il y a plein de chose que je ne comprends pas, mais c'est amusant de faire des points un peu partout et de voir ce que ça donne... c'est zooli
mais ça s'arrête toujours vers 1/3 de la hauteur
Il est un peu difficile de voir le rapport entre le placement et la quantité des points et la forme obtenue, mais tu peux sûrement y rémédier
Tu veux bien poster le code original Amstrad par exemple ?
@+
Edité par cassiope01 Le 05/06/2012 à 16h23
Code VB :
' http://libertybasic.fr/forum/topic-133+cone-de-revolution.php#m1325 NoMainWin WindowWidth = 600 WindowHeight = 550 UpperLeftX = Int((DisplayWidth-WindowWidth)/2) UpperLeftY = Int((DisplayHeight-WindowHeight)/2) BUTTON #g.calc, "draw", [draw], UL, 460, 50, 50, 25 textbox #g.en, 460, 90, 50, 25 'entrée angle BUTTON #g.new, "new", [new], UL, 460, 130, 50, 25 Open "Révolution" For Graphics_nsb_nf As #g #g "TrapClose [quit]" #g "setfocus" an = 15 [new] #g.en an 'angle par défaut #g "down ; Fill darkgreen" #g "Color white; BackColor darkgreen" #g "when leftButtonDown [coord]" Print text(410,108,"Angle") Print text(150,WindowHeight-45,"Poser des points sur la hauteur") redim r(24) : redim h(36) : redim v(36) pi = asn(1)*2 'pi= 3.1416 xc=20 : yc=1 : x=240 for i=20 to 460 step 20 'tracé de l'axe #g "place 240 ";i for t = 0 to 30 if t>5 and t<15 then #g "goto 240 ";i+t next next i wait [coord] mx = MouseX my = MouseY #g "Color red; BackColor red; Place ";mx;" ";my #g "CircleFilled 3" xc= mx/10: yc= my/24 ' résolution > 25 X 80 (a bista dé naz ) r(yc)=26-xc 'stock rayons yc=yc+(yc<24) '[autre] 'autre angle ? wait [draw] #g "when leftButtonDown" #g.en "!contents? var$" 'saisie angle de vue an = val(var$) u = sin(an*pi/180) axe = cos(an*pi/180) 'visu -------------------- for w=1 to 24 rt = 8*r(w) ' 8 yr = 240+(12-w)*16*axe gosub [calc] next w #g "when leftButtonDown [coord]" wait [calc] #g "Color green ; BackColor green" lt = 0 for i =10 TO 360 step 10 lt= lt + 1'i/10 ' 10 x= 240+(rt* sin(i*pi/180)) y= yr+rt*u*cos(i*pi/180)*0.9 xp= 240+(rt*sin((i+10)*pi/180)) yp= yr+rt*u*cos((i+10)*pi/180)*0.9 #g "set ";x;" ";y #g "goto ";xp;" ";yp if w>1 then #g "goto ";h(lt);" ";v(lt) h(lt)=xp v(lt)=yp gosub [paus] next i #g "flush" return ' yr=400-(240+(16*w)-200) 'wait [paus] timer 10, [temps] wait [temps] timer 0 return [quit] Close #g END Function text(x,y,msg$) #g "Place ";x;" ";y;";|";msg$ End Function
Bien intéressant.
Il y a plein de chose que je ne comprends pas, mais c'est amusant de faire des points un peu partout et de voir ce que ça donne... c'est zooli



Il est un peu difficile de voir le rapport entre le placement et la quantité des points et la forme obtenue, mais tu peux sûrement y rémédier

Tu veux bien poster le code original Amstrad par exemple ?
@+
Edité par cassiope01 Le 05/06/2012 à 16h23
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Tu rigole ! vu le temps que j'ai mis à réaliser que la saisie des points se faisait dans une résolution, et le tracé dans une autre, c'est en pensant à "Séquence" et à son inkey$ que ça m'est revenu.
Par contre, pour le reste, c'est le genre de code qu'il vaut mieux en faire un autre que de chercher à comprendre, j'ai meme pas été foutu d'extraire les coefficients du calcul, à etre obligé dans mettre en amont, qui sont annulés lors du calcul.
Le nombre de prog's qui m'ont échappés, et qui courrent dans les bois..un jour on va se faire attaquer.
Celui-là, depuis quinze jours, je l'ai perdu quatre ou cinq fois, alors que je le tenais.
C'est vrai que je suis vraiment bordélique....C'est la Lune...la Lune je te dis.
Te casse pas à vouloir faire tourner les verres à pieds...Y'a 'Blender" qui s'en occupe.
Bon je regarde si tu a trouvé la valve......à+
Ah oui je vais mettre le code Amstrad, il y a la ligne d'entrée de coordonnées où je pense qu'il y a une ambiguité à cause du nom des variables r(yc) c'est probable qu'il y a du recyclage non maitrisé. Tu sais que
ce n'est pas le genre de chose qui m'inquiete. (du moment que ça marche ) c'est la programation à "l'emplatre"... P....n,... .il faut que je m'arrete...Enfin, ça te fait de la lecture.
....à+
Par contre, pour le reste, c'est le genre de code qu'il vaut mieux en faire un autre que de chercher à comprendre, j'ai meme pas été foutu d'extraire les coefficients du calcul, à etre obligé dans mettre en amont, qui sont annulés lors du calcul.
Le nombre de prog's qui m'ont échappés, et qui courrent dans les bois..un jour on va se faire attaquer.
Celui-là, depuis quinze jours, je l'ai perdu quatre ou cinq fois, alors que je le tenais.
C'est vrai que je suis vraiment bordélique....C'est la Lune...la Lune je te dis.
Te casse pas à vouloir faire tourner les verres à pieds...Y'a 'Blender" qui s'en occupe.
Bon je regarde si tu a trouvé la valve......à+
Ah oui je vais mettre le code Amstrad, il y a la ligne d'entrée de coordonnées où je pense qu'il y a une ambiguité à cause du nom des variables r(yc) c'est probable qu'il y a du recyclage non maitrisé. Tu sais que
ce n'est pas le genre de chose qui m'inquiete. (du moment que ça marche ) c'est la programation à "l'emplatre"... P....n,... .il faut que je m'arrete...Enfin, ça te fait de la lecture.

____________________
Roro
Roro
Comme je me suis déjà taper de le rentrer dans le simulateur (pour vérifier que ce n'était pas un "mort-né"), et que je ne peux pas le sortir du simul en texte (snapshot hyéroglyphique).
Je te mets les parties adaptées:
Saisie des points:
if inkey ( 1...8..2..0)=0 then xc=xc+-1 ou yc=yc+-1(les flèches pour déplacer le pointeur...en résolution 25 X 80)
Validation (entrée)du point:
if inkey(18)=32 'touche ENTER' then r(yc)=26-xc : yc=yc+1 (c'est là qu'est la magouille)
Validation de l'ensemble des points: Lecture de shift +Enter (bla bla..)>envoie à saisie de l'angle.
La suite est identique à part que j'ai changé en "u" un "p" qui était un coefficient de correction propre au pc (0.9) que j'ai laissé dans l'initialisation. Mais qui dans le prog était codé en dur à deux endroit (que tu peux certainement supprimer sans effets) De toutes façon "u" est fixé à la troisième ligne de [draw], donc ça ne pouvait pas etre "p".
Il y avait un: print "terminé" là où j'ai mis un: ' goto [autre] (changement d'angle/memes données)
Enfin, il y a la dernière ligne, aprés le return:"yr=400-(200+((((.....dont je ne suis pas arrivé à définir l'utilité, et que j'ai mis en: ' '''
A la cinquième ligne de: [coord] il y le passage de la résolution de mon Toshiba >à 25 X 80 ( il y a des chances que celà ne soit pas super, mais j'ai essayé le coeff 8 (600/80) qui me parraissait logique, il en a pas voulu. (out range r( ) )
je t'ai fais grace de tout le baratin dont on était friand en ces temps reculés....Avec moi, tu n'a plus besoin d'acheter le journal...Veinard !
Ah, il y a le p(3,1) qui est tout en haut en dessous du nomainwin, c'est un copeau qui trainait dans l'atelier, et qui s'est glissé pendant l'emballage (à virer)
Edité par Roland Le 03/06/2012 à 17h29
Je te mets les parties adaptées:
Saisie des points:
if inkey ( 1...8..2..0)=0 then xc=xc+-1 ou yc=yc+-1(les flèches pour déplacer le pointeur...en résolution 25 X 80)
Validation (entrée)du point:
if inkey(18)=32 'touche ENTER' then r(yc)=26-xc : yc=yc+1 (c'est là qu'est la magouille)
Validation de l'ensemble des points: Lecture de shift +Enter (bla bla..)>envoie à saisie de l'angle.
La suite est identique à part que j'ai changé en "u" un "p" qui était un coefficient de correction propre au pc (0.9) que j'ai laissé dans l'initialisation. Mais qui dans le prog était codé en dur à deux endroit (que tu peux certainement supprimer sans effets) De toutes façon "u" est fixé à la troisième ligne de [draw], donc ça ne pouvait pas etre "p".
Il y avait un: print "terminé" là où j'ai mis un: ' goto [autre] (changement d'angle/memes données)
Enfin, il y a la dernière ligne, aprés le return:"yr=400-(200+((((.....dont je ne suis pas arrivé à définir l'utilité, et que j'ai mis en: ' '''
A la cinquième ligne de: [coord] il y le passage de la résolution de mon Toshiba >à 25 X 80 ( il y a des chances que celà ne soit pas super, mais j'ai essayé le coeff 8 (600/80) qui me parraissait logique, il en a pas voulu. (out range r( ) )
je t'ai fais grace de tout le baratin dont on était friand en ces temps reculés....Avec moi, tu n'a plus besoin d'acheter le journal...Veinard !

Ah, il y a le p(3,1) qui est tout en haut en dessous du nomainwin, c'est un copeau qui trainait dans l'atelier, et qui s'est glissé pendant l'emballage (à virer)
Edité par Roland Le 03/06/2012 à 17h29
____________________
Roro
Roro
Un petit ajout: Petit ajout: dessous: yp=yr+((rt*u)cos(((.....il y a:
plot x, y
draw xp, yp
if w>1 then draw h( lt ), v( lt )
h( ) et v( ) qui servent à joindre les cercles entre eux, il me semble ....et là ,y'a vraiment tout.
plot x, y
draw xp, yp
if w>1 then draw h( lt ), v( lt )
h( ) et v( ) qui servent à joindre les cercles entre eux, il me semble ....et là ,y'a vraiment tout.
____________________
Roro
Roro
Roland:
Donc je repose ma question :
pourrais-tu poster ce code source que tu t'es tapé à rentrer dans le simulateur ?
tes explications compliquées ne me permettent pas d'essayer l'exercice de traduction vers JB que tu as réussi à faire avec ta connaissance de JB.
@+
Edité par cassiope01 Le 03/06/2012 à 19h06
Comme je me suis déjà taper de le rentrer dans le simulateur ...
Donc je repose ma question :
pourrais-tu poster ce code source que tu t'es tapé à rentrer dans le simulateur ?
tes explications compliquées ne me permettent pas d'essayer l'exercice de traduction vers JB que tu as réussi à faire avec ta connaissance de JB.
@+
Edité par cassiope01 Le 03/06/2012 à 19h06
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Attend, avant écoute ça : tout se passe à la troisième ligne de : 'visu
yr=200+(( 12-w) *16* axe avec 200 tu règle la hauteur, j'ai mis: 150. Au lieu de 16 j'ai mis 26 et c'est Booo!
par contre j'ai allongé la fenetre à: 550
Si tu commence à mettre des points plus bas que le bas de l'axe, ça monte plus haut que le haut de la fenetre
Avec ce que j'ai mis dans les deux derniers posts, il y a absolument tout dans l'ordre:
pose des points> entrée de chaque point >entrée de l'ensemble>angle>calcul, et les plots et les draw. il y a tout
Dans le simul, il y a: print #8 qui envoie la liste dans un fichier, avant ça marchait, depuis, il ya eu changement de pc, réinstall, ext...et ça ne marche plus, j'ai essayé de l'envoyer à "Tiny" (imprimante pdf virtuelle) rien à faire.
Règle les deux variables, le bazard, il va monter jusqu'au plafond
Maintenant tu va m'expliquer pourquoi "redim"...plutot que "dim". sans faire référence à l'aide..je te rappelle qu'elle à pris feu il y a quelque temps déjà.
Je continue de trifouiller le simulateur pour lui faire cracher le code.
En cas d'echec, je t'envoie le manuscrit par la poste.
yr=200+(( 12-w) *16* axe avec 200 tu règle la hauteur, j'ai mis: 150. Au lieu de 16 j'ai mis 26 et c'est Booo!
par contre j'ai allongé la fenetre à: 550
Si tu commence à mettre des points plus bas que le bas de l'axe, ça monte plus haut que le haut de la fenetre
Avec ce que j'ai mis dans les deux derniers posts, il y a absolument tout dans l'ordre:
pose des points> entrée de chaque point >entrée de l'ensemble>angle>calcul, et les plots et les draw. il y a tout
Dans le simul, il y a: print #8 qui envoie la liste dans un fichier, avant ça marchait, depuis, il ya eu changement de pc, réinstall, ext...et ça ne marche plus, j'ai essayé de l'envoyer à "Tiny" (imprimante pdf virtuelle) rien à faire.
Règle les deux variables, le bazard, il va monter jusqu'au plafond
Maintenant tu va m'expliquer pourquoi "redim"...plutot que "dim". sans faire référence à l'aide..je te rappelle qu'elle à pris feu il y a quelque temps déjà.
Je continue de trifouiller le simulateur pour lui faire cracher le code.
En cas d'echec, je t'envoie le manuscrit par la poste.

____________________
Roro
Roro
Bon, le simul ne veux rien savoir. Alors on contourne.
je l'ai mis en html ( c'est la version "non voyant" ) pour pas louper des ligne j'ai fais chevaucher, il y a donc des lignes répétées, elles sont numérotées, ça va aller;
par contre ce n'est pas la version intégrale, il y a le minimum pour que ça fonctionne, et évidemment j'ai testé.
>>>> the lien >>>> ICI.zip .........N'oublie pas les expli' pour les " redim"
Allez, au diable l'avarice voilà le simulateur, La Bete.zip avec une copie de clavier, un condensé de doc (trés condensé), une expli, et le fichier du code. évidemment, préviens quand tu la pris, que je l'enlève. ça va te changer de JB....Sur !
Edité par Roland Le 03/06/2012 à 23h02
je l'ai mis en html ( c'est la version "non voyant" ) pour pas louper des ligne j'ai fais chevaucher, il y a donc des lignes répétées, elles sont numérotées, ça va aller;
par contre ce n'est pas la version intégrale, il y a le minimum pour que ça fonctionne, et évidemment j'ai testé.
>>>> the lien >>>> ICI.zip .........N'oublie pas les expli' pour les " redim"
Allez, au diable l'avarice voilà le simulateur, La Bete.zip avec une copie de clavier, un condensé de doc (trés condensé), une expli, et le fichier du code. évidemment, préviens quand tu la pris, que je l'enlève. ça va te changer de JB....Sur !

Edité par Roland Le 03/06/2012 à 23h02
____________________
Roro
Roro
Merci Roland.
Je vais peut-être voir ce que je peux faire pour disposer de plus de choses paramétrables, ou bien je le posterais chez les anglophones pour voir ce qu'ils sauraient en tirer...!?
(je parle du ICI.zip bien sûr, pas de la bête
)
@+
Edité par cassiope01 Le 04/06/2012 à 17h04
Je vais peut-être voir ce que je peux faire pour disposer de plus de choses paramétrables, ou bien je le posterais chez les anglophones pour voir ce qu'ils sauraient en tirer...!?
(je parle du ICI.zip bien sûr, pas de la bête

@+
Edité par cassiope01 Le 04/06/2012 à 17h04
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Si tu teste "la bete" ( ce dont je doute ) elle envoie une syntax error au chargement du "volume1.sna"
ne pas en tenir compte Run > Enter et roule...heu ..non , plutot...rame !
Je ne suis pas arrivé à voir pourquoi ça inverse le haut et le bas.
Hey ! tu n'a pas répondu pour les "redim". Je croyais avoir trouvé, mais non, le "new" rebranche en amont des "dim's"...donc...No Comprendo por qué :..."redim".
ne pas en tenir compte Run > Enter et roule...heu ..non , plutot...rame !
Je ne suis pas arrivé à voir pourquoi ça inverse le haut et le bas.
Hey ! tu n'a pas répondu pour les "redim". Je croyais avoir trouvé, mais non, le "new" rebranche en amont des "dim's"...donc...No Comprendo por qué :..."redim".


____________________
Roro
Roro
____________________
Roro
Roro
DIM déclare une variable tableau et donc réserve un espace mémoire nécessaire à chaque fois.
REDIM la réinitialise simplement. Apparemment la déclare aussi si ça n'a pas été fait précédament.
-
Edité par cassiope01 Le 05/06/2012 à 11h38
REDIM la réinitialise simplement. Apparemment la déclare aussi si ça n'a pas été fait précédament.
-
Edité par cassiope01 Le 05/06/2012 à 11h38
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
J'en conclu que "dim" ne remets pas à zéro le contenu d'un tableau plein.
Hey.. tu a mis cx = mx/10 ? ça remets le rayon dans la juste proportion des points entrés.
Tu a interet à changer le nom: "cy" dont le y indique qu'il s'agit du rayon suivant dans l'axe des y's
Edité par Roland Le 05/06/2012 à 14h04
Hey.. tu a mis cx = mx/10 ? ça remets le rayon dans la juste proportion des points entrés.

Tu a interet à changer le nom: "cy" dont le y indique qu'il s'agit du rayon suivant dans l'axe des y's

Edité par Roland Le 05/06/2012 à 14h04
____________________
Roro
Roro
Quelque peu remanié...
- maintenant on trace les points en déplaçant la souris tout en maintenant appuyé sur le clic gauche.
Code VB :
Ce que je ne parviens toujours pas à comprendre, c'est pourquoi le dernier tiers supérieur est toujours SUR l'axe ???
@+
Edité par cassiope01 Le 06/06/2012 à 07h25
- maintenant on trace les points en déplaçant la souris tout en maintenant appuyé sur le clic gauche.
Code VB :
' http://libertybasic.fr/forum/topic-133+cone-de-revolution.php#m1325 NoMainWin WindowWidth = 600 WindowHeight = 550 UpperLeftX = Int((DisplayWidth-WindowWidth)/2) UpperLeftY = Int((DisplayHeight-WindowHeight)/2) BUTTON #g.calc, "draw", [draw], UL, WindowWidth-70, 50, 50, 25 textbox #g.en, WindowWidth-70, 90, 50, 25 'entrée angle BUTTON #g.new, "new", [new], UL, WindowWidth-70, 130, 50, 25 Open "Révolution" For Graphics_nsb_nf As #g #g "TrapClose [quit]" #g "setfocus" dp = 0.9 ' ?? pxAxe = 260 'coord. en x de l'axe pi = asn(1)*2 'pi= 3.1416 an = 15 'angle de départ ny = 24 ' ?? offset = 13 'écart qu'il y aura entre les points en vertical. [new] #g.en an 'dernier angle donné #g "down ; Fill darkgreen" #g "BackColor darkgreen ; Color white" ' #g "when leftButtonDown [coord]" #g "when leftButtonMove [coord]" ' quand on laisse le doigt appuyé sur le click gauche. ' pas 'print' sinon on écrit dans la MainWin qui n'est pas active. aff= text(WindowWidth-120,108,"Angle") aff= text(150,WindowHeight-45,"Poser des points sur la hauteur") nty = int(WindowHeight/offset) redim r(ny) : redim h(36) : redim v(36) :redim yt(nty) nty = 1 for i=20 to 460 step 20 'tracé de l'axe #g "place ";pxAxe;" ";i for t = 0 to 30 if t>5 and t<15 then #g "goto ";pxAxe;" ";i+t next next i wait [coord] mx = MouseX my = MouseY cx= int(mx/10) : cy= int(my/ny) ' résolution > 25 X 80 (a bista dé naz ) n = int(my/offset) if n<0 then n=0 if yt(n)=0 then #g "BackColor red ; Color red" #g "Place ";mx;" ";my;" ; CircleFilled 2" yt(n) = 1 : nty = nty + 1 r(cy)=ny+1-cx 'stock rayons cy=cy+(cy<ny) end if wait [draw] ' #g "when leftButtonDown" #g "when leftButtonMove" #g.en "!contents? var$" 'saisie angle de vue an = val(var$) u = sin(an*pi/180) axe = cos(an*pi/180) 'visu -------------------- for w=1 to ny rt = 8*r(w) ' 8 yr = pxAxe+(12-w)*16*axe gosub [calc] next w ' #g "when leftButtonDown [coord]" #g "when leftButtonMove [coord]" wait [calc] #g "BackColor green ; Color green" lt = 0 for i =10 TO 360 step 10 lt= lt + 1'i/10 ' 10 x= pxAxe+(rt* sin(i*pi/180)) y= yr+rt*u*cos(i*pi/180)*0.9 xp= pxAxe+(rt*sin((i+10)*pi/180)) yp= yr+rt*u*cos((i+10)*pi/180)*0.9 #g "set ";x;" ";y #g "goto ";xp;" ";yp if w>1 then #g "goto ";h(lt);" ";v(lt) h(lt)=xp v(lt)=yp call pause 2 next i #g "flush" return sub pause tempo timer tempo, [temps] wait [temps] timer 0 end sub [quit] Close #g END Function text(x,y,msg$) #g "Place ";x;" ";y;";|";msg$ End Function
Ce que je ne parviens toujours pas à comprendre, c'est pourquoi le dernier tiers supérieur est toujours SUR l'axe ???
@+
Edité par cassiope01 Le 06/06/2012 à 07h25
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
C'est un axe de symétrie.!
Quelle courbe si biscornue a-tu donc tracée pour vouloir que le dernier tiers soit ailleurs que sur l'axe ??
Trés bien ta modif,
Je vois que tu a gardé la tempo. Figure toi que je n'arrive pas à faire fonctionner le déguggeur en "pas à pas" ( malgrés l'aide ) c'est pourquoi javais mis la tempo... A défaut de "pas à pas " j'avais mis en valse lente. Et finalement, c'est pas mal de voir la figure se construire, plutot qu'elle nous saute à la figure.
Bon je charge ton code, et j'essaie de comprendre ton soucis de tiers.



Trés bien ta modif,

Bon je charge ton code, et j'essaie de comprendre ton soucis de tiers.

____________________
Roro
Roro
disons que suivant les points c'est pas forcément un tiers, plutôt 1/5 du haut de l'axe... le truc se cantonne juste à repeindre l'axe en vert

____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
____________________
Roro
Roro
modif cosmétiques :
Code VB :
Si tu résouds le pb de l'inversion, je pense que ce serait parfait
@+
Edité par cassiope01 Le 06/06/2012 à 18h16
Code VB :
' http://libertybasic.fr/forum/topic-133+cone-de-revolution.php#m1325 NoMainWin WindowWidth = 600 WindowHeight = 600 UpperLeftX = Int((DisplayWidth-WindowWidth)/2) UpperLeftY = Int((DisplayHeight-WindowHeight)/2) BUTTON #g.calc, "draw", [draw], UL, WindowWidth-70, 50, 50, 25 textbox #g.en, WindowWidth-70, 90, 50, 25 'entrée angle BUTTON #g.new, "new", [new], UL, WindowWidth-70, 130, 50, 25 Open "Révolution" For Graphics_nsb_nf As #g #g "TrapClose [quit]" #g "setfocus" dp = 0.9 ' ?? pxAxe = 260 'coord. en x de l'axe pyAxe = 230 'coord. en y de l'axe pi = asn(1)*2 'pi= 3.1416 an = 15 'angle de départ ny = 24 ' ?? offset = 8 'écart qu'il y aura entre les points en vertical. [new] #g.en an 'dernier angle donné #g "down ; Fill darkgreen" #g "BackColor darkgreen ; Color lightgray" #g "when leftButtonMove [coord]" ' quand on laisse le doigt appuyé sur le click gauche. nty = int(WindowHeight/offset) redim r(ny) : redim h(36) : redim v(36) :redim yt(nty) nty = 1 for i=20 to 460 step 20 'tracé de l'axe #g "place ";pxAxe;" ";i for t = 0 to 30 if t>5 and t<15 then #g "goto ";pxAxe;" ";i+t next next i #g "BackColor darkgreen ; Color yellow" ' pas 'print' sinon on écrit dans la MainWin qui n'est pas active. aff= text(WindowWidth-120,108,"Angle") aff= text(150,WindowHeight-45,"Poser des points sur la hauteur") #g "BackColor darkgreen ; Color darkgreen" aff= text(WindowWidth-120,WindowHeight-45,space$(15)) wait [coord] mx = MouseX my = MouseY cx= int(mx/10) : cy= int(my/ny) ' résolution > 25 X 80 (a bista dé naz ) n = int(my/offset) if n<0 then n=0 if yt(n)=0 then #g "BackColor red ; Color red" #g "Place ";mx;" ";my;" ; CircleFilled 2" yt(n) = 1 : nty = nty + 1 r(cy)=ny+1-cx 'stock rayons cy=cy+(cy<ny) end if wait [draw] #g "when leftButtonMove" #g.en "!contents? var$" 'saisie angle de vue an = val(var$) u = sin(an*pi/180) axe = cos(an*pi/180) 'visu -------------------- for w=1 to ny rt = 8*r(w) ' 8 yr = pyAxe+(12-w)*16*axe gosub [calc] next w #g "when leftButtonMove [coord]" #g "BackColor darkgreen ; Color yellow" aff= text(WindowWidth-120,WindowHeight-45,"terminé...") wait [calc] #g "BackColor green ; Color green" lt = 0 for i =10 TO 360 step 10 lt= lt + 1'i/10 ' 10 x= pxAxe+(rt* sin(i*pi/180)) y= yr+rt*u*cos(i*pi/180)*0.9 xp= pxAxe+(rt*sin((i+10)*pi/180)) yp= yr+rt*u*cos((i+10)*pi/180)*0.9 #g "place ";x;" ";y #g "goto ";xp;" ";yp if w>1 then #g "goto ";h(lt);" ";v(lt) h(lt)=xp v(lt)=yp call pause 2 next i #g "flush" return sub pause tempo timer tempo, [temps] wait [temps] timer 0 end sub [quit] Close #g END Function text(x,y,msg$) #g "Place ";x;" ";y;";|";msg$ End Function
Si tu résouds le pb de l'inversion, je pense que ce serait parfait

@+
Edité par cassiope01 Le 06/06/2012 à 18h16
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Comme j'anticipe ta réponse qui va etre: Oui, pourquoi ?
Fais donc la manip suivante:
Ouvre deux éditeurs, (un à gauche, l'autre à droite hi hi)
dans celui de gauche, remplace: pxaxe de la ligne: yr=pxaxe+(.......; par: 150
dans celui de gauche:............ pareil.......... ......... ........ .......... >:250.
Trace une courbe dans chacun, commençant au bas du trait d'axe et finissant en haut du trait d'axe.
....Draw à gauche.....Draw à droite.......Etonnant....Non ?
C'est toujours étonnant de voir un signe "=" entre un "x" et un "y".
Edité par Roland Le 06/06/2012 à 07h58
Fais donc la manip suivante:
Ouvre deux éditeurs, (un à gauche, l'autre à droite hi hi)
dans celui de gauche, remplace: pxaxe de la ligne: yr=pxaxe+(.......; par: 150
dans celui de gauche:............ pareil.......... ......... ........ .......... >:250.
Trace une courbe dans chacun, commençant au bas du trait d'axe et finissant en haut du trait d'axe.
....Draw à gauche.....Draw à droite.......Etonnant....Non ?
C'est toujours étonnant de voir un signe "=" entre un "x" et un "y".

Edité par Roland Le 06/06/2012 à 07h58
____________________
Roro
Roro
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie