Voici a quoi ressemble une courbe de cardiogramme

Voilà si vous avez des idées sur la manière de procédé.
Merci d'avance
Moui mais c'est pas aussi facile que ça...Patrick88 a écrit :un "scrooling" sur un sprite ....
plusieurs sprite battement rapide, lent, normal
les enchainer en fonction de la variable que tu dis...
pat
Code : Tout sélectionner
BPM=80
;-Main
If InitSprite() = 0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitSprite3D()=0
MessageRequester("Error","DirectX 7+ is needed.",0)
EndIf
OpenScreen(800, 600, 32, "Games")
CreateSprite(1,200,80)
CreateSprite(2,200,80)
UsePNGImageDecoder()
TransparentSpriteColor(#PB_Default,RGB(255,0,255))
Dim Boom(10)
Boom(1)=50
Boom(2)=-10
Repeat
ExamineKeyboard()
ClearScreen(RGB(255,255,255))
If ElapsedMilliseconds()>Refresh
Refresh=ElapsedMilliseconds()+100
i=Random(10)-5
If ElapsedMilliseconds()>NextBoom
NextBoom=ElapsedMilliseconds()+(BPM/60)*1000
i=50
EndIf
StartDrawing(SpriteOutput(1))
LineXY(190,40-old_i,200,40-i,RGB(255,0,0))
StopDrawing()
old_i=i
UseBuffer(1)
GrabSprite(3,10,0,190,80)
ClearScreen(0)
DisplaySprite(3,0,0)
EndIf
UseBuffer(-1)
DisplaySprite(1,50,50)
FlipBuffers(0)
Until KeyboardPushed(#PB_Key_Escape)
C'est pas grave c'est l'intention qui compte ! :p Merci de t'être penché sur le problème en tout cas. Si tu as une autre idée.Dorian a écrit :Bon c'est une très mais alors très mauvaise idée![]()
J'ai fais quelques test sous MathCAD et le résultat n'est pas bon.
Avec une somme de 50 (An*Cos(n*w*t) + Bn*Sin(n*w*t)), le pic n'est toujours pas pointu alors que le reste resemble de moins en moins à quelque chose. Je m'y suis peut-être mal pris mais le résultat n'est pas aussi bon que je ne l'espérais, domage
A ok je comprends mieux, j'aurais préféré resté dans le type vectoriel pour pouvoir nuancer les couleurs en fonction des batements du coeur.Patrick88 a écrit :aaaahhh non, c'est pas à ça que je pensais... quand je disais sprite , c'était à un bitmap que je pensais ... ( l'habitude du bbcbasic )
donc 3 bitmaps, un lent un normal un rapide, de la taille de ta zone, tu les dessine avec le paint de ouinouin de façon à ce que les fins des images = les débuts, tu les "loadsprite", tu les affiches en les faisant "défiler" (je sais pas comment) , lorsque ta variable change, tu changes de bitmap....
voilivoilou
pat
Merci beaucoup comtois !comtois a écrit :tu peux aussi regarder du côté de la méthode des moindres carrés , ou interpolation polynomiale
C'est un sujet qui m'intéresse, ça fait plusieurs fois que je remets, il serait temps que je fasse un essai
Code : Tout sélectionner
InitSprite()
InitKeyboard()
Global varie.f,varie3.f
varie=50
OpenScreen(800,600,32,"cardio")
Repeat
ClearScreen(0)
StartDrawing(ScreenOutput())
For i=1 To 799
Plot(i,500+(varie3*Sin(25*i+varie)),RGB(255,255,255))
Next i
StopDrawing()
If varie<360:varie+0.5:EndIf
If varie>=360:varie=0:EndIf
FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Space):varie3+1:EndIf
Until KeyboardPushed(#PB_Key_Escape)
Ajout d'une courbe de tendance à une série de données
1 Cliquez sur la série de données à laquelle vous voulez ajouter une courbe de tendance ou une moyenne mobile.
2 Dans le menu Graphique, cliquez sur Ajouter une courbe de tendance.
3 Sous l'onglet Type, cliquez sur le type de courbe de régression ou de moyenne mobile souhaité.
Si vous avez sélectionné Polynomiale, tapez dans la zone Ordre la puissance la plus élevée pour la variable indépendante.
Si vous avez sélectionné Moyenne mobile, tapez dans la zone Période le nombre de périodes à utiliser pour calculer la moyenne mobile.
Remarques
· La zone Série de base répertorie toutes les séries de données du graphique qui prennent en charge les courbes de tendance. Pour ajouter une courbe de tendance à une autre série, cliquez dans la zone de liste sur le nom correspondant, puis sélectionnez les options souhaitées.
· Si vous ajoutez une moyenne mobile à un graphique en nuages de points, elle est basée sur l'ordre des valeurs X tracées dans le graphique. Pour obtenir le résultat souhaité, il est possible que vous deviez trier les valeurs X avant d'ajouter une moyenne mobile.