CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Qbasic] problème coordonnées

legolas110
legolas110
Niveau 7
12 mars 2008 à 13:03:27

Salut à tous. J'ai un petit problème en Qbasic: Je n'arrive pas à faire en sorte que le centre de l'écran porte les coordonnées
(0, 0), mais ce point est toujours en haut à gauche, ce qui fait que quand je met par exemple:

LINE (0, 0)-(0, 10)

j'ai un trait qui par de en haut à gauche et qui descend. Mais il ne devrait pas monter? Parce que s'il descend ça devrait être (0, -10) non?

Comment faire pour empêcher cela et faire en sorte que le point (0, 0) soit au centre, que quand on se dirige en dessous du centre, ce soit négatif par rapport à l'axe des ordonnées et que quand on va à gauche il soit négatif par rapport à l'axe des abscisse? (Un graphique logique)

Merci d'avance.

guyver2
guyver2
Niveau 10
12 mars 2008 à 17:01:30

c'est une sorte de convention en informatique, les affichage utilisent toujours (ou presque) un repere centré en haut a gauche et dont l'axe des Y descend.

A toi de faire un petit changement de repere pour afficher ce que tu veux.

par exemple si ta zone d'affichage fait 800 (largeur) par 600 (hauteur).

[X, Y] = change_repere(x,y)
X = x+400;
Y = -y+300;
retourner (X,Y)

avec ça tu peux recommencer a voir ta zone d'affichage avec un repère comme tu as l'habitude de les voir.

legolas110
legolas110
Niveau 7
12 mars 2008 à 18:04:57

ok merci guyver2 mais quelle est la commande pour changer de repères?

guyver2
guyver2
Niveau 10
12 mars 2008 à 19:11:05

ce que je voulais te dire c'est que (c'est mon avis, je n'ai jamais fait de Qbasic) il est impossible de chnager le repere, a toi de t'adapter. En passant tout tes points dans une fonction du genre de celle que je t'ai écrite.

legolas110
legolas110
Niveau 7
12 mars 2008 à 19:30:27

ah ok, j'avais pas compris ça. Merci guyver2.

Si jamais quelqu'un d'autre sait comment faire en Qbasic, je suis preneur (j'ai rien truové de plus que ce que guyver2 me dis sur Google).

guyver2
guyver2
Niveau 10
12 mars 2008 à 19:52:58

un conseil : n'y crois pas trop.

Je ne connais aucune lib (en C/C++, Java, php, ...) qui gère les reperes comme tu le voudrais. Alors c'est peut-etre pas une mauvaise chose que de commencer a t'y habituer dès maintenant si tu envisage de refaire des prog en 2D.

legolas110
legolas110
Niveau 7
12 mars 2008 à 19:55:03

ouais j'ai bien compris qu'il y a pas de commande pour changer l'origine de l'écran pour la mettre au centre, mais si quelqu'un sait comment faire pour que ça le fasse, qu'il me le dise, parce que là j'ai beau essayé, y a rien qui fonctionne.

godrik
godrik
Niveau 30
12 mars 2008 à 20:00:40

je pense que la technique de guyver est une bonne technique.

Si tu fais du dessin vectoriel, tu peux toujours utiliser les techniques d'empilement de matrice (classique en 3D) pour faire ce que tu veux...

legolas110
legolas110
Niveau 7
12 mars 2008 à 20:06:01

ouais moi aussi je pense que sa technique est bonne. Seulement je trouve pas ce qui faut faire pour y arriver. Tout ce que j'ai essayé pour l'instant n'a pas fonctionné. Mais je vais bien finir par trouver, et si quelqu'un a une idée de ce que ça pourrait être, il est le bienvenu!

legolas110
legolas110
Niveau 7
12 mars 2008 à 20:24:32

Bon ok c'est bon j'ai trouvé :D
Merci pour votre aide!

legolas110
legolas110
Niveau 7
12 mars 2008 à 21:05:22

désolé mais j'ai un autre problème maintenant... Comment je peux faire pour associer une variable dans une variable?
Je m'explique: Au début de mon programme on doit entrer une fonction (x^2+2x+4 par exemple) et après il devrait tracer le graphique de cette fonction.
Mais si pour la fonction à entrer je met une variable double (#), il me met une erreur à cause du x qui n'est pas un chiffre et si je met une variable string ($), il ne veut pas lancer le programme parce que le type de la fonction est incompatible au résultat y#.

Vous avez une idée de comment faire pour que la fonction à entrer au début du programme puisse contenir des "x" sans pour autant être une variable string mais double?

dnob700
dnob700
Niveau 10
12 mars 2008 à 21:39:53

Je ne crois pas que ce soit possible. En VB il y avait une fonction eval qui aurait pu faire ce que tu veux. Mais en QBasic, je ne crois pas. Il faudrait le programmer toi même et pour l'instant, je pense que ce n'est pas de ton niveau.

guyver : ma lib graphique (advio2) gérait (et gère toujours) des systèmes de coordonnées choisis par l'utilisateur. On peut aussi le faire avec OpenGL et probablement avec pas mal de lib 2D ou 3D (je pense que toutes les lib pour la 3D doivent permettre de le faire).

guyver2
guyver2
Niveau 10
12 mars 2008 à 21:47:40

encore une fois je doute que ce soit faisable de la maniere que tu aimerais.

Si tu sais que ta fonction en entrée est un polynome, tu peux faire une boucle qui recupere les coefs et les puissances de maniere itérative.

un truc du genre:

tabPuissances = []
tabCoef = []
continuer = vrai
i = 1

tant que continuer:
sasir le coef -> c
saisir la puissance -> p
tabCoef[i] = c
tabPuissance[i] = p
i = i+1
demander si il reste des éléments a saisir -> continuer
fin tant que

pour ton exemple ça donne qqch comme ça :

-> "entre le coef :"
<- 1
-> "entre la puissance :"
<- 2
-> "continuer ?"
<- oui

-> "entre le coef :"
<- 2
-> "entre la puissance :"
<- 1
-> "continuer ?"
<- oui

-> "entre le coef :"
<- 4
-> "entre la puissance :"
<- 0
-> "continuer ?"
<- non

et voila tu as ton polynome dans deux tableau, je te laisse faire la reconstruction de la fonction

sinon tu peux aussi récuperer sous forme de string et te taper l'analyse a la recherche des inconnues, des coefs ect...

legolas110
legolas110
Niveau 7
12 mars 2008 à 21:58:47

merci pour votre aide. Je crois que je vais laisser ça de côté et me contenter de ce que j'ai fait pour l'instant, et peut être faire un programme du même genre en Visual Basic.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment