Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Cosas Que Se Llaman Igual Pero Que Son Diferentes Según El Lenguaje
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Cosas Que Se Llaman Igual Pero Que Son Diferentes Según El Lenguaje 
 
Buenos días!.

Ayer me lleve la desagradable sorpresa que la clase Rect de gambas no es igual a la clase Rect de Python.

En la clase Rect, tenemos distintas propiedades. Ejemplo: X y Left. Y  y  Top, etc.
Mientras que en Python X y Left deben ser iguales, al igual que ocurre con Y y Top.

En gambas Left no es igual. Al cambiar esta, el ancho del rectángulo cambia, manteniendo fija la propiedad Right.
En Pyhon Si cambias Left, se desplaza Right, manteniendo el ancho del rectángulo.

No comprendo como en gambas si tenemos un rectángulo con unas propiedades determinadas, ancho y alto.
Se cambian estas al cambiar el lugar del emplazamiento del rectángulo en un área de dibujo.

Así este código traído a gambas desde Python: ( El movimiento del rectángulo siempre va ser en diagonal. Debe ser así.)

   ' Mover bloque
    Select Case bloque["dir"]
      Case ABAJOIZQUIERDA
        bloque["rect"].left -= VELOCIDADMOVIMIENTO
        bloque["rect"].top += VELOCIDADMOVIMIENTO  
      Case ABAJODERECHA
        bloque["rect"].left += VELOCIDADMOVIMIENTO
        bloque["rect"].top += VELOCIDADMOVIMIENTO
      Case ARRIBAIZQUIERDA
        bloque["rect"].left -= VELOCIDADMOVIMIENTO
        bloque["rect"].top -= VELOCIDADMOVIMIENTO
      Case ARRIBADERECHA
        bloque["rect"].left += VELOCIDADMOVIMIENTO
        bloque["rect"].top -= VELOCIDADMOVIMIENTO  
    End Select
 


Lo que provocará con el tiempo que el rectángulo vaya aumentando de altura y disminuyendo su anchura.

Y deba ser sustituido por este para que funcione:

  Select Case bloque["dir"]
      Case ABAJOIZQUIERDA
        bloque["rect"].x -= VELOCIDADMOVIMIENTO
        bloque["rect"].y += VELOCIDADMOVIMIENTO  
      Case ABAJODERECHA
        bloque["rect"].x += VELOCIDADMOVIMIENTO
        bloque["rect"].y += VELOCIDADMOVIMIENTO
      Case ARRIBAIZQUIERDA
        bloque["rect"].x -= VELOCIDADMOVIMIENTO
        bloque["rect"].y -= VELOCIDADMOVIMIENTO
      Case ARRIBADERECHA
        bloque["rect"].x += VELOCIDADMOVIMIENTO
        bloque["rect"].y -= VELOCIDADMOVIMIENTO  
    End Select
 


A lo que me refiero es que siendo lenguajes de programación y teniendo tanta similitud en algo,
se empeñan por hacerlas distintas, creando confusión al programador.

Lo curioso del tema es que luego en esta parte del código a la hora de dibujar el rectángulo
y usar propiedades X e Y se pueda dibujar el rectángulo usando las propiedades Left y Top.  

Paint.Rectangle(bloque["rect"].left, bloque["rect"].top, bloque["rect"].width, bloque["rect"].height)  
 


Primera Pasada:

 primeraejecucion

Fijaros la similitud entre x y Left. Como cambiando Left, disminuye el ancho del rectángulo y como la propiedad Right queda intacta.

Segunda Pasada:

 segundapasada

 

Os añado el código. He creado un punto de interrupción, podéis ejecutarlo mediante F5.
Ejecutar con F5 ir abajo y pinchar en Observar para ver las propiedades del rectángulo.

( Curioso que las opciones de depuración se almacenen de alguna forma en el proyecto ).

Saludos

Animacion01.tar.gz
Descripción: Diferencias entre la clase Rect de Gambas y Rect de Python. 
Descargar
Nombre del archivo: Animacion01.tar.gz
Tamaño: 13.9 KB
Descargado: 60 veces
Animacion01.tar.gz
Descripción: Diferencias entre la clase Rect de Gambas y Rect de Python. 
Descargar
Nombre del archivo: Animacion01.tar.gz
Tamaño: 13.9 KB
Descargado: 60 veces
Animacion01.tar.gz
Descripción: Diferencias entre la clase Rect de Gambas y Rect de Python. 
Descargar
Nombre del archivo: Animacion01.tar.gz
Tamaño: 13.9 KB
Descargado: 60 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cosas Que Se Llaman Igual Pero Que Son Diferentes Según El Lenguaje 
 
Si desde el punto de vista de gambas, tomamos un objeto rect como una similitud de una ventana.
Al desplazar desde el lado izquierdo, el lado derecho permanece constante.

El objeto rect en gambas va con el componente QT4 independiente de la clase Paint.

En Python el objeto rect va con la librería Pygame. (SDL1). A la hora de crear un objeto rect es muy
parecido a gambas. Claro que al dibujarlo cambia con la clase Paint.

En Pygame: Sin usar figuras rellenas.

Creación:
Citar:

pygame object for storing rectangular coordinates
Rect(left, top, width, height) -> Rect
Rect((left, top), (width, height)) -> Rect
Rect(object) -> Rect


Dibujar:

Citar:

 pygame.draw.rect()
    draw a rectangle shape
    rect(Surface, color, Rect, width=0) -> Rect


En gambas. Con clase Paint:

Creación:

orect = New Rect(x, y, ancho, alto)
 


Paint.Rectangle(x, y, w, h)
 


Si usase SDL1/2 con gambas para dibujarlo, la cosa cambiaría...a menos que añada el componente QT4.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cosas Que Se Llaman Igual Pero Que Son Diferentes Según El Lenguaje 
 
Shell:

Citar:
A lo que me refiero es que siendo lenguajes de programación y teniendo tanta similitud en algo,
se empeñan por hacerlas distintas, creando confusión al programador.

¿sabes que Benoit no sabe nada de python? Creo que lo comentó una vez en las listas de correo. Por lo tanto, no es de extrañar que pasen esas cosas.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cosas Que Se Llaman Igual Pero Que Son Diferentes Según El Lenguaje 
 
jsbsan escribió: [Ver mensaje]
¿sabes que Benoit no sabe nada de python?


¿Por qué debería él ?  
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cosas Que Se Llaman Igual Pero Que Son Diferentes Según El Lenguaje 
 
Julio:

Citar:

¿sabes que Benoit no sabe nada de python? Creo que lo comentó una vez en las listas de correo. Por lo tanto, no es de extrañar que pasen esas cosas.


Naturalmente. Y no tiene por que. No sé realmente si el enfoca más la clase Rect a otros menesteres.
Pero como usa métodos muy curiosos que son ideales para la creación de juegos, seria de extrañar.

No creo que el solamente lo enfocase a ventanas de la librería QT.

El problema de esto es la costumbre del programador de trabajar muchos años con algo y encontrar algo totalmente distinto
en otro lenguaje. Adaptarse no debe ser nada fácil.

Siempre puedo crear mi propia clase rectángulo. Y picar de un lado y otro.
No creo que sea adecuado usar el componente QT4 y la librería SDL a la vez, por solo la clase Rect.  
Con Paint cambia.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes [C] Diferencias Entre El Lenguaje C Y El L... Shell C/C++ 2 Jueves, 29 Diciembre 2016, 11:28 Ver último mensaje
Shell
No hay nuevos mensajes Write Print Es Parecido Pero No Es Igual. tincho Aplicaciones/Fragmentos de Código 8 Domingo, 27 Agosto 2017, 23:13 Ver último mensaje
vuott
No hay nuevos mensajes Escornabot Un Robot Con Arduino Y Todas Es... portaro Mundo Linux 1 Domingo, 22 Julio 2018, 09:01 Ver último mensaje
Shell
No hay nuevos mensajes Dos Clases Que Se Llaman Igual tincho Controles/Librerías/Componentes 4 Sabado, 09 May 2020, 16:05 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron