1

Bon, voila je me suis remis a programmer.
Et histoire de bien commencer, j'ai eu envie de faire un prog qui affiche un cube en le faisant tourner.
Je ne demande pas que vous m'expliquiez comment faire, mais plutot je souhaite savoir si flib accepte les matrices en tant que variables.
J'explique: puis je écrire:


flib("pix:"&string(xm[1])&","&string(ym[1])&") ?

(avec xm et ym matrices de taille x*x)

=>j'ai essayé, et j'observe rien a l'écran. Pourquoi? Apparemment, on peut pas utiliser les données de matrices comme argument?

autre chose: je galére actuellement pour les rotations. J'arrive a faire un algo qui fait une rotation en 2 dimensions seulement autour de l'axe 0 du graphe. Or, quand je veux faire la même chose en utilisant les fonctions flib, ca me fait un truc bizarre. C'est peut etre a cause de la fonction "line" de flib, qui ne centre pas le point (0,0) au milieu de l'écran, mais au coin gauche haut de l'écran ?
Voila le source: (pour une une rotation de centre G(50,50) et d'angle 45°
P.S: je précise que ma caltos est déja en mode degré.


50»xt
50»yt
0»a
flib("clrscr")

For u,0,45,1
xt*cos(a)-yt*sin(a)-50»xtt
xt*sin(a)+yt*cos(a)+50»ytt
flib("line:50,50,"&string(xtt)&","&string(ytt)&"")
a+1»a
EndFor
avatar
Mon âme rayonnait du feu de ton feu,
Ton monde était une eau chuchotante
A la riviére de mon coeur.

Rumi, poéte soufi

2

les matrices sont acceptées, l'erreur vient de toi
avatar
納 豆パワー!
I becamed a natto!!!1!one!

3

Tout d'abord, comme ta matrice a deux dimensions, tout élément est de la forme xm[ligne,colonne].
Donc l'appel de FLib serait plutôt :
flib("pix:"&string(xm[x,y])&","&string[x,y])

Pour la rotation, eh oui, toi tu travaillais dans le repère utilisé pour les courbes ...
Essaie en ajoutant 10 à xtt (et ytt) puis en les multipliant 5 ...
Tu devrais normalement au moins apercevoir quelque chose à l'écran ...
Aussi, le &"" ne sert à rien dans les arguments de FLib, tu peux l'enlever.
La boucle For ne sert à rien si tu n'utilises pas la variable u
Fait donc plutôt :

50»xt
50»yt
flib("clrscr")
For u,0,45,1
(xt*cos(u)-yt*sin(u)-50)+10»xtt
(xt*sin(u)+yt*cos(u)+50)+10»ytt
flib("line:50,50,"&string(10*xtt)&","&string(10*ytt))
EndFor

Je ne sais pas du tout si ça va marcher ...
mais je l'espère smile

[edit]Edité par liquid le 02-02-2002 à 16:27:00[/edit] grin
[edit]Edité par ZdRUbAl le 02-02-2002 à 16:51:26[/edit]

4

voui, je ne sais pas si le truc de ZdRUbAl marche, mais il a l'air de mieux marcher que le tien ... smile

Alors ??? ça marche ?
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

5

zdrubal t une merde matrice[a][b] c pour le C,il faut mettre matrice[a,b]grin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

6

gavé grin j'avais picol euh non oublié
merci liquid grin

7

lol terrible ce édit !! et en plus tu as oublié de corriger la premiere ligne gringrin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

8

lol trop picol hier soir grin

9

je vois ça
avatar
納 豆パワー!
I becamed a natto!!!1!one!

10

picolpicol
Quand on y réfléchit, comme ça ....................
heureusement que t'es là quand même, hein picol
non parce que sinon mon code il est faux, hein, alors benji il aurait pas été content picol

11

je vois pas pkoi il croyait que les matrix passaient pas !?
avatar
納 豆パワー!
I becamed a natto!!!1!one!

12

Ca fait longtemps qu'il a pas programmé ...
Il a du mal à s'y remettre wink
En fait j'ai l'impression qu'il confondait avec les listes

confus

13

Perso, j'avais fait un cube en 3D, avec flib, mais pour les coordonnées des points, je te déconseille vraiment les matrices : c'est leeeeeeeeeeent.
Utilise plutôt une variable pour chaque coordonnée sur chaque axe.

14

hum je pense que l'erreur viens du fait que l'arg transmit a flib est a viglugle flottante et que flib ne surporte que les entiers...
un ptit floor() dans la fonction string pour transformer le nb en etier et le tour est joué...
avatar

15

bon alors je vois qu'il y a eu du succés pour ce topic ! grin

alors je réponds méthodiquement:
-zdrubal, je vais voir si ton code marche.
-si ca n'avait pas marché, j'aurais pas été content effectivement grin
-liquid: je pensais que les matrices passaient pas parce que j'utilisais pas la bonne syntaxe pour les rentrer en argument.
-zdrubaL: it's not only my having not programmed for a long time which is responsible for my worrying. Et je ne confondais pas avec les listes !
-jackiechan: si j'utilisais les matrices, c'est parce que c'était propre. C'est vraiment si lent que ca ?
-azerty: effectivement, je crois que tu as raison. Etant donné qu'en argument on avait des cosinus de longueur, un nombre a virgule flottante était généré. Donc flib l'acceptait pas. Je vais voir pour ton floor.


Derniére chose: merci a tous !
avatar
Mon âme rayonnait du feu de ton feu,
Ton monde était une eau chuchotante
A la riviére de mon coeur.

Rumi, poéte soufi

16

C'est pas super lent avec les matrices, mais c'est nettement plus lent qu'avec 3 variables différentes pour chaque point (une par axe).
Déjà que le BASIC est lent, si tu veux un résultat convenable, je te consseille de changer de technique.
Mais essaie les deux, tu verras bien la différence...

17

vais déja essayer la premiére.
avatar
Mon âme rayonnait du feu de ton feu,
Ton monde était une eau chuchotante
A la riviére de mon coeur.

Rumi, poéte soufi

18

g pu rien a dire sad
si ce n est qu il aurarais pu proceder comme ca meme sans mat en arg.

xm[1,1]->a
ym[1,2]->b
flib("pix:"&string(a)&","&string(b))
le pb avc les matrice en arg on perd + de tps a allez cherchez une donnez que ds une var
Des joueurs de brood war ici? /w TIman[sL] [br] L’abondance de paroles inutiles est un symptôme certain d’infériorité mentale.

19

y'a moy de faire un truc fluide en basic ?

20

j'en sais rien grin
J'ai abandonné mon cube: je fais maintenant un prog en basic qui affiche un compte tour (comme sur les voitures)
quand on appuie sur la touche entrée, l'aiguille se déplace en rotation comme en vrai.
Avec un fond bidon fait en *pic avec l'interface du graphe grin
l'aiguille revient a sa place quand on lache la touche entrée.
Le pb, c'est qu'il faut appuyer plusieurs fois sur la touche entrée, parce qu'on dirait que le basic gére pas la touche enfoncée sad
avatar
Mon âme rayonnait du feu de ton feu,
Ton monde était une eau chuchotante
A la riviére de mon coeur.

Rumi, poéte soufi

21

passe par FLIB("KEYLOW")
et fais avec 2nd tu n'auras aucun PB

22

génial ca !
je vais essayer... wink
avatar
Mon âme rayonnait du feu de ton feu,
Ton monde était une eau chuchotante
A la riviére de mon coeur.

Rumi, poéte soufi

23

quand tu auras fini ton compte-tour envoie le moi!
wink

24

lol !
tu risques d'etre décu ! grin
avatar
Mon âme rayonnait du feu de ton feu,
Ton monde était une eau chuchotante
A la riviére de mon coeur.

Rumi, poéte soufi

25

lol
j'ai deja fais ce prgm , et j'ai meme fait un editeur d'objet 3D sur 92+...

mais tu c , tu aura 2sec/images lol
va voir sur mon site :
http://lminguet.freesurf.fr/
Ancien pseudo : lolo