Cercle, sinusoïdes, ellipses...sans pi, sans fonctions,..etc

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Y a un startdrawing qui me gène(message d'erreur) alors je l'ai enlevé
heu :oops: je viens de corriger mon code !! il fallais le mettre en REM

et l'activer seulement pour la fonction PLOT ! :)

P.S à propos de guitare j'ai une classique et depuis peu une électrique guitare lag (modèle roxanne floyd)
cool !! :D tu joue quoi comme style ?
moi c'est Picking a donf ! sinon je suis plutot soliste, style: "Mark Knopfler" (grosse tendance Country music picking oblige ...) sur ma Gibson "Marauder"de 1972 !! , j'ai bien sur un Dobro de Marque : Dobro , (facture Gibson) depuis 1988 importé par Franck Cheval , une guitare folk
coreene (Fenix par young chang) avec un super son (elle sonne aussi bien qu'une Martin de 1970, ceci est testé tout les ans au camping du Festival de Craponne /arzon , le plus grand festival de coutry music actuel en France ! avec les joueurs de bluegrass qui y viennent des quatre coins de france ...ya plus de music dans le camping , que sur la scene :D )
je joue depuis 28 ans maintenant ! :D
Dernière modification par Backup le sam. 10/déc./2005 16:38, modifié 1 fois.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

J'ai pas encore testé (mais dl tous les codes ... je vais voir ca chez moi :D)
Mais je crois que ce que nous dit "Huitbit", c'est ce que j'ai vu en court ya 2 semaines (juste avant d'abandonner la matière), mais en amélioré.

Moi ca aurait été une spirale constituée de lignes (ca aurait été un peu moche), mais en approfondissant yaV moyen de trouevr un résultat similaire.
Pour les curieux, c'est le principe du champ vectoriel. Faut juste déterminer la bonne équation et op...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

A propos de la parabole, c'est incroyable comme les maths donnent le même résultat qu'un travail empirique! Effectivement, le truc est de jouer sur une variable définissant la vitesse de chute, ce qui est très simple. :D
Avatar de l’utilisateur
Huitbit
Messages : 940
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Ellipses inclinées

Message par Huitbit »

Hello!
Je me suis dit que des ellipses verticales ou horizontales ça faisait pas trop Star Trek.
Alors j'ai voulu les incliner. Avec la méthode traditionnelle, il n' y a qu'à rajouter un déphasage(idem pour les courbes de Lissajous, il suffit de jouer avec l'amplitude, la pulsation, ...)
TROOOP facile!

Avec les différentielles j'ai cru au départ, qu'il fallait au moins l'API Wonderbra ou l'API Mac Gyver (ou pire l'API Rahan)!
Il faut juste rajouter deux lignes pour le calcul de la trajectoire, "j'espique":

Pour une ellipse inclinée on a:
xellipse =xe=Xmax*cos(a)
yellipse=ye=Ymax*sin(a+phi)
a est l'angle qui varie, Xmax l'amplitude et phi le déphasage

Si on dérive
dxe=-Xmax*sin(a)da
dye=Ymax*cos(a+phi)=Ymax*(cos(a)*cos(phi)-sin(a)sin(phi))*da

Là ça craint un peu, sauf si "j'invente" deux variables x et y, les mêmes que la dernière fois (x=cos(a) et y=sin(a))

ça donne donc
dxe=-Xmax*y*da
dye=Ymax*(x*cos(phi)-y*sin(phi))

Voilà le code ( c'est un peu complètement du copier-coller car pour l'instant ça ressemble à du Kryptonnien pour moi! Merci Dobro!)

Code : Tout sélectionner

; *********** initialisation ********* 
x.f = 50          ;variables  x et y qui vont permettrent de calculer xe et ye                              
y.f = 0 
xe.f =0           ;coordonnées xe et ye de l'ellipse
ye.f=0                              
da.f=0.03           ; pas ou variation de l'angle a
Xmax.f=4             ;demi axe horizontal de l'ellipse
Ymax.f=2             ;demi axe vertical de l'ellipse 
cosphi.f=Cos(3.1416/4);  cos et sin du déphasage (ici ~pi/4)
sinphi.f= Sin(3.1416/4) 
; ****************************** 


InitMouse () 


; ******** ** pour le sprite ***************** 
InitSprite () 
; *************************************** 



OpenWindow (1, 1,1, 800, 600, #PB_Window_SystemMenu , "test" ) ; on ouvre une fenetre 
OpenWindowedScreen ( WindowID (1) , 0, 0, 800, 600, 1, 1, 1) ; on met un ecran dedans !! 

; *********** on va creer le sprite !! ***************** 
CreateSprite (1,16,16) ; on cree un sprite de 16*16 
StartDrawing ( SpriteOutput (1)) ; on va dessiner dedans un rond jaune ! 
Circle (8,8, 8, RGB ($F1,$F8,$C)) ; le voila le beau rond jaune 
StopDrawing () 
; ********* le sprite est terminer on va jouer avec !! ****** 
;


Repeat ; boucle principale 

Event= WaitWindowEvent () ; on regarde si quelqu'un a cliqué sur la croix pour quitter 

; ************************** ton prog ici **************** 

For i = 1 To 1520 
ExamineMouse () 
If MouseButton (2) ; le bouton de souris droit fait quitter ! 
End 
EndIf 
x = x - y * da               ;calcul de x 
y = y + x * da              ;calcul de y 





;*************************lignes à rajouter***********************************
xe=xe-Xmax*y*da                  ;calcul de xe
ye=ye+Ymax*da*(x*cosphi-y*Sinphi)        ; calcul de ye
DisplaySprite (1, xe+500,ye+350); affichage du sprite
;*******************************************************************************



FlipBuffers () ; <---- ceci pour voir le dessin se faire +Lent !! 
;ClearScreen (0, 0, 0) ; <--- ceci efface l'ecran !! 
Next i 
; *************************************************** 

;FlipBuffers() ;<--- c'est la place normale pour le flipbuffer 
;ClearScreen(0, 0, 0); <--- c'est la place normale pour le clearscreen !! 
Until Event= #PB_Event_CloseWindow 
Return 
J'ai enlevé clearscreen juste pour faire joli!
Il ne reste plus qu'à faire un prog avec plinplin de mouvements (cycloïdes, hélices, ......)


PS>DOBRO: J'ai une formation classique à la base puis avec le temps j'ai glissé du côté obscur de la guitare: les accords(d'ailleurs, j'avais presque terminé l'algo d'un générateur d'accords...je m'y remettrai peut-être!)
Donc.. un peu de blues, de bossa, du picking de la variété quelquefois.
Je suis gaucher ça a été un peu galère pour ne plus être unplugged!
J'aspire à suivre le chemin du Voodoo Chile!
Elevé au MSX !
Avatar de l’utilisateur
Huitbit
Messages : 940
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Message par Huitbit »

Oups!
Faute de frappe, il manque des "da"
Correction:

dye=Ymax*cos(a+phi)*da=Ymax*(cos(a)*cos(phi)-sin(a)sin(phi))*da
;j'utilise l'identité remarquable cos(i+j)=cos(i)cos(j)-sin(i)sin(j)

Là ça craint un peu, sauf si "j'invente" deux variables x et y, les mêmes que la dernière fois (x=cos(a) et y=sin(a))

ça donne donc
dxe=-Xmax*y*da
dye=Ymax*(x*cos(phi)-y*sin(phi)) *da

PS>DOBRO j'ai un ampli de base Marshall VSR15
Tu dois assurer, mois ça fait presque 20 ans que j'ai commencé mais j'en ai fait 6 ans "pour de vrai", depuis, j'assure un niveau minimum en attendant le JOUR!
Elevé au MSX !
Répondre