begin process at 2012 05 25 10:42:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

Tracer un rectangle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tracer un rectangle

mardi 28 avril 2009 à 09:05:24 | Tracer un rectangle

alibm

Bonjour,
J'ai un projet à faire en assembleur (tasm) dont le sujet de programmer un programme qui verfie si la souris est installé ou non puis faire tracer un rectangle en cliquant deuxfois càd faire deux points sur l'ecran et parsuite le rectangle sera affiché sur ecran
Par exemple, ci je clique sur deux points dont les coordonnées (1,3) et (3,2) (ce deux points feront le diagonale de ce rectangle) les deux autres points du rectangle seront (1,2) et (3,3).
Tout ça dans la  première version mais dans la deuxième on fait ce rectangle par le glissement de souris comme dans la séléction des fichiers.
J'ai arrivé à vérifier si la souris est installé et j'ai quelques codes pour faire la première version (presque marche).
S'il vous plaît, j'ai besoin d'aide dans la deuxième version.
Merci d'avance.
mercredi 3 juin 2009 à 22:52:59 | Re : Tracer un rectangle

rdany62

Réponse acceptée !
Bonjour, à quel niveau tu as besoin d'aide (gestion VGA, souris ou calcul des lignes du rectangle) ?

Pour commencer, il faudrait que la première version (la plus simple) soit fonctionnelle.

Si j'ai bien compris: tu cliques à un endroit sure l'écran, çà définit les coordonnées du premier point (supérieur gauche) du rectangle et à un autre endroit çà défini les coordonnées du dernier point (inférieur droit) du rectangle. (pour le 1er exercice)

Donc, en pseudo code, sous Dos:

si (souris non présente)
{
   fin du programme
}sinon {
   passer en mode VGA (n'importe lequel, sous Dos on est en mode réel, il faudra changer de fenêtre d'affichage graphique)
   attendre un clic
   récupérer la position de la souris
   attendre le deuxième clic
   si (position1(x,y) différente de position2(x,y))
   {
      si (point à position1 dans la bonne fenêtre graphique)
      {
         position_actuelle(x,y)=position1(x,y)
         tracer le point à position_actuelle(x,y)
         tant que (position_actuelle(x,y)> ou = position1(x,y) ET position_actuelle(x,y)< ou = position2(x,y))
         {
            si (position_actuelle(x,y) dans la bonne fenêtre)
            {
               si (position_actuelle(x)< ou = position2(x))
               tracer le point à position_actuelle(x,y)
                  incrémenter position_actuelle(x)
               si (position_actuelle(x)>position2(x))
               {
                  tracer le point à position_actuelle(x,y)
                  incrémenter position_actuelle(y)
                  position_actuelle(x)=position1(x)
               }
            } sinon {
               calculer la bonne fenêtre d'affichage graphique
               si (position_actuelle(x)< ou = position2(x))
                  tracer le point à position_actuelle(x,y)
                  incrémenter position_actuelle(x)
               si (position_actuelle(x)>position2(x))
               {
                  tracer le point à position_actuelle(x,y)
                  incrémenter position_actuelle(y)
                  position_actuelle(x)=position1(x)
               }
            }
         }
   fin du programme
}

Ca doit ressembler à quelque chose comme çà. Si tu fait çà en mode graphique, alors ne te tracasse pas avec le VGA et la fenêtre d'affichage vidéo, c'est pas utile.

Pour l'exercice 2, il faut tracer le rectangle tant qu'il y a le clic de souris et retracer tout le temps qu'on a pas relaché le bouton de souris, en effaçant l'écran lorsqu'il y a un mouvement (ce qui évitera d'avoir ton rectangle puis tout de suite l'effacement, ce qui au final donne un écran sans rectangle). En plus, faire comme çà permet d'avoir finit le tracé dès qu'on relache la souris.

J'espère t'avoir été utile...
dimanche 7 juin 2009 à 13:19:59 | Re : Tracer un rectangle

alibm

Bonjour,
Merci bien pour votre aide



Cette discussion est classée dans : points, version, souris, tracer, rectangle


Répondre à ce message

Sujets en rapport avec ce message

Fenetre non rectangle ... [ par Cendra ] je me demande comment faire une fenetre avec la forme que je veux ... j'ai fait ma petite recherche mais j'arrive pas faire mon programme :(voila les Programmation assembleur d'un pilote de souris serie [ par Scaq ] COUCOU, C SCAQ...J'ai du mal à recevoir les données de ma souris serie rs232 & assembleur& c++ version microsoft [ par elbair32 ] bonjour;je n'arrive pas à ecrire une fonction sur c++ en utilisant dedant des mnemoniques Tasm pour gérer les ports série je sais comment sa se fait e COULEUR DE TEXTE LORS DU PASSAGE DE LA SOURIS [ par knetus12 ] salut a tousj'ai un probleme pour faire changer la couleur d'un texte quand la souris passe dessus ca na marche pas pourquoi ??? .ELSEIF uMsg == Projet X-OS (un mini système d'exploitation 16/32bits) [ par aladdin ] je suis entrain de développer un mini OS en 16/32 bits (surtout 32bits)et j'aimerais avoir des idées des propositions, et de participation au developp Test souris && pause clavier [tasm] [ par merzhin ] Bonjour voila, jutilise 2 procédure :une pour faire un test soursi (ki me donne les coordonné de la position de la souris ainsi que l'etat des buttons Simuler un clic [ par Oswalde ] Bonjour à tous,Je dois depuis un prog en VB simuler le clic sur le bouton gauche de la souris, mais il y a un problème, le logiciel auquel je dois fai vesa souris sur usb [ par simz ] je cherche un moyen de faire un driver de souris...j'utilise vesa pour afficher de la haute résolution, mais l'int 33h ne marche pas dans les hautes r Fonction pour prendre la souris en assembleur. [ par nico20011caus ] Je fais de l'assembleur un peut et je voudrai savoir comment qu'on fait pour prendre la souris en assembleur.Moi je fait: mov ax,1                  &n positions de la souris : ports 64h 60h [ par ibnhaithem ] Bonjour,Comment peut-on récupérer la position de la souris en utilisant les ports 64h et 60h ?( En assembleur et sans passer par aucune interruption b


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales