réduire une équation

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

réduire une équation

Message par chikun »

:?

voilà dans ma routine je code:

ang=270-((angle-270)*2)

arf! :P on peut reduire ça ??

:roll: chui loin d'etre une "pure" en math, je sais meme pas si "equation" et le mot exact
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

ang = 270-(angle*2-270*2)
ang = 270-angle*2+540
ang = 810 - angle*2 et voilà :wink:
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

:oops: :? :( :) :o :D , g verifié et c vrai en plus
:roll: mais comment il font ça?......

bon merci, tu passes prendre un verre quand tu veux...je continue à coder
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

mais comment il font ça?......
Le compte est bon :P






Sinon en 9 lettres :

Image
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

chikun a écrit ::oops: :? :( :) :o :D , g verifié et c vrai en plus
:roll: mais comment il font ça?......

bon merci, tu passes prendre un verre quand tu veux...je continue à coder
Bah je ne peux pas développer plus le calcul là.... :wink:

Regarde cette page, elle m'a l'air pas mal faite sinon cherche "développement/factorisation" sous google :)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Ou tout simplement ca :

Code : Tout sélectionner

angle = 15444

angle%360
Debug angle
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

:?: :?: :?:
Tu veux en venir où SPH ?
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Code : Tout sélectionner

angle=44
ang = 1210 + angle*24
Debug ang
real_ang=ang%360
Debug real_ang
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Roh je suis fatigué en ce moment moi ou je ne comprends rien :lol:

Le modulo de l'angle n'a rien à voir avec le simplification du calcul demandé :wink:
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Oliv a écrit :Roh je suis fatigué en ce moment moi ou je ne comprends rien :lol:

Le modulo de l'angle n'a rien à voir avec le simplification du calcul demandé :wink:
Quand, apres plusieurs calculs, tu te retrouves avec un angle de par exemple 54801, tu n'as pas idée de ce que ca represente.
Par un simple modulo, tu sais ce que veux dire "angle = 54801". Ca fait :

Code : Tout sélectionner

angle=54801
real_angle = angle%360
debug real_angle
Par exemple, dans ta formule :
Oliv a écrit :ang = 270-(angle*2-270*2)
ang = 270-angle*2+540
ang = 810 - angle*2 et voilà :wink:
ton angle de 810 peux deja etre reduit à %360
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

heu ...oliv! ça n'a pas marché regarde et trouve dans le milieu du code >
"oliv!!!!!" , si j'optimise par ta formule , ça ne marche pas (?)

Code : Tout sélectionner

InitSprite() 
InitKeyboard() 
InitMouse() 

OpenScreen(1024, 768, 32, "squelette ecran") 
; 992,736 

Structure boule 
    xb.w 
    yb.w  
;    sensx.b 
;    sensy.b 
EndStructure 

Dim boule.boule(2) 

CreateSprite ( 1,100,100) 
StartDrawing ( SpriteOutput (1)) 
  Circle (50, 50, 50, RGB (0,255,0)) 
StopDrawing () 

CreateSprite ( 2,32,32) 
StartDrawing ( SpriteOutput (2)) 
  Circle (16,16,16, RGB (0,0,255)) 
StopDrawing () 


boule(1)\xb=(1024-100)/2 : boule(1)\yb=100 

diam=600 
ang=180: st=1 

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 
Repeat 
StartDrawing(ScreenOutput()) 
DrawText(0,0,"Chikun",RGB(125,90,30),RGB(0,0,0)) 
DrawText(370,0,"clic droit > sortir ___/___ clic gauche > shooter",RGB(0,200,100), RGB(0,0,0)) 
DrawText(369,16,"(A) ang à gauche ___/___ (Z) ang à droite",RGB(0,200,100), RGB(0,0,0)) 
StopDrawing() 
boule(2)\xb=mx-16: boule(2)\yb=700 
DisplayTransparentSprite(1,boule(1)\xb,boule(1)\yb) 
DisplayTransparentSprite(2,boule(2)\xb,boule(2)\yb) 
ExamineMouse() 
mx=MouseX() 

ExamineKeyboard() 
      If KeyboardPushed(#PB_Key_W) : ang=ang-st 
      EndIf 
      If KeyboardPushed(#PB_Key_Q) : ang=ang+st 
      EndIf 

      If ang>=360 : ang=358 : st=-st 
      EndIf 
      If ang<=180 : ang=182 : st=-st 
      EndIf 



dx=diam*Cos(ang*#PI/180) 
dy=diam*Sin(ang*#PI/180) 
StartDrawing(ScreenOutput()) 
Line(mx,716,dx,dy,RGB(255,0,0)) 
StopDrawing() 
      If MouseButton(1)
            col=0 
            For i=1 To 200 


            boule(2)\xb=boule(2)\xb+16*Cos(ang*#PI/180) 
            boule(2)\yb=boule(2)\yb+16*Sin(ang*#PI/180) 
            DisplayTransparentSprite(1,boule(1)\xb,boule(1)\yb) 
            DisplayTransparentSprite(2,boule(2)\xb,boule(2)\yb) 
            If col=0 And SpritePixelCollision(1,boule(1)\xb,boule(1)\yb,2,boule(2)\xb,boule(2)\yb)
                     If boule(2)\yb<boule(1)\yb+75
                        ang=270-((ang-270)*2): col=1; OLIV !!!!!!!!!!!!!!!!!!!!!!!!!!!
                        Else
                        ang=-ang : col=1
                     EndIf
            EndIf
                      
            StartDrawing(ScreenOutput()) 
            Line(mx,716,dx,dy,RGB(255,0,0)) 
            StopDrawing()   

            FlipBuffers() 
            ClearScreen(RGB(0, 0,0)) 
                If boule(2)\yb<0 Or boule(2)\yb>736 Or boule(2)\xb<0 Or boule(2)\xb>992: i=200
                EndIf 



            Next i 
            
      EndIf
FlipBuffers() 
ClearScreen(RGB(0, 0,0)) 


Until MouseButton(2) 
End 
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Je n'ai pas le temps de regarder plus en détail car je viens de rentrer du boulot et je vais dormir. Ton code ne fonctionne pas sous MacOS, j'ai quand même lancé une machine virtuelle pour essayer : quel est le soucis ? Car pour moi le résultat est le même.

De plus, peux tu mettre deux trois commentaires dans ton bordel, euhh code ? :oops:
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

mon bordel :lol:

oups c'est vrai ( y a Brodo qui va me remonter les bretelles) , je vais bosser aussi mais dés ce soir je te met les com pour la clarté du zafair
Good07
Messages : 308
Inscription : ven. 23/avr./2004 18:08
Localisation : Hérault 34190 Laroque

Message par Good07 »

Pour moi j'ai remplacé la ligne:

Code : Tout sélectionner

ang=270-((ang-270)*2): col=1
par

Code : Tout sélectionner

ang = 810 - angle*2 :col=1
Et comme dit Oliv le résultat est le même... :D

ça marche très bien...
chikun
Messages : 185
Inscription : sam. 21/juin/2008 13:36

Message par chikun »

ok Oliv & Good07
ça a l'air de fonctionner... merci

mais je vais tout reprendre à zéro, car sous certains angles la balle ralentie drolement , j'immagine mettre toutes les possibilités dans un tableau en sachant que la boule peut etre percuté sur 360 point et que l'origine de la frappe au dessus ou en dessous de la cible...enfin un truc comme ça :roll:

c bon de rever ...
Répondre