Vistas de página en total

sábado, 22 de marzo de 2014

EJEMPLO TRAZADO LINEAS

   Para ir verificando que las funciones. Este es un pequeño programa que lee dos pulsaciones consecutivas del ratón, y toma las coordenadas de cada una de ellas, para trazar una recta que vaya desde el primer punto hasta el segundo.
    De esta forma podremos probar todas las posibilidades de la función recta, colocando en todas las posiciones y casos las rectas.
    Como solo es un ejemplo, no importa el color, y como en el resto de los ejemplos imprimo siemopre en color azul.


   El ejecutable podeis cargarlo directamente en  Ej_linea.exe 
   Recordad que está en gráficos de dos y necesitais en Windows7 hace falta un emulador de DOS como el DOSBOX, para ejecutarlo.


 EJ_LINEA.ASM
; Copyright (C) 2013  José Ángel Moneo Fernández

;    This program is free software: you can redistribute it and/or modify
;    it under the terms of the GNU General Public License as published by
;    the Free Software Foundation, either version 3 of the License, or
;   (at your option) any later version.

;    This program is distributed in the hope that it will be useful,
;    but WITHOUT ANY WARRANTY; without even the implied warranty of
;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;    GNU General Public License for more details.

;    You should have received a copy of the GNU General Public License
;    along with this program.  If not, see <http://www.gnu.org/licenses/>.


 include main.mac
include stdio.mac
include mouse.mac
include graphics.mac

.model compact,pascal
.stack 200

.data
x0 dw 0
y0 dw 0
x1 dw 0
y1 dw 0

color dw 1

.code

principal proc far
        main
        modovideo 12h   ;inicia graficos
        resmouse         ;reinicia ratón
        mouse on         ; activa rarón
    
punto1:
        getmouse        ;espera  ESTÉ SIN PULSAR
        cmp ax,0
        jne punto1
pulsar1:      
        getmouse         ;verifica espera pulsación raton
        cmp ax,2      ;salir?
        jne sig1
        jmp fuera
sig1:      
        cmp ax,1      ;boton izquierdo?
        jne pulsar1
        getmousex
        mov x0,ax
        getmousey
        mov y0,ax
punto2:
        getmouse        ;espera soltar
        cmp ax,0
        jne punto2
pulsar2:     
        getmouse         ;verifica espera pulsación raton
        cmp ax,2      ;salir?
        je fuera
        cmp ax,1      ;boton izquierdo?
        jne pulsar2
        getmousex
        mov x1,ax
        getmousey
        mov y1,ax
             
      
        mouse off

      
        line x0,y0,x1,y1,color
        mouse on
        jmp punto1
fuera:
        modovideo t80col
        resmouse
        mouse off
        exit  0
principal endp

end





No hay comentarios:

Publicar un comentario

Si tienes algún comentario, duda o sugerencia, o si quieres aportar algún código creado a partir de las librerías expuestas aquí, por favor, indícamelo.