sábado, 30 de noviembre de 2013

Movimiento de pixeles hacia el centro, en 4 planos. C++ y C#

¿¿Qué tal programadores?!
Para seguir con la graficación, en esta ocasión complementaremos un poco mas el ejercicio realizado en la entrada anterior para lograr 4 planos dentro de la forma, y que dentro de cada plano exista un movimiento de puntos hacia el centro de dichos planos, y para poder diferenciarlos los realizaremos con colores diferentes.

El ejercicio lo vamos a hacer tanto en lenguaje C++ como en C#, para que puedan apreciar las pequeñas variantes que existen entre dichos lenguajes, en cuanto a código.

La forma solamente solamente estaría compuesta por cuatro Timers sobre ella, uno para cada plano, y pondremos el fondo de la forma en color negro, para que se distingan mas los colores de cada pixel (ésto es opcional).

Entonces la forma diseñada en Borland C++ Builder quedaría de la siguiente manera:



Y la forma diseñada en C# seria la siguiente, igual con 4 Timers(Son Invisibles en VS):



jueves, 28 de noviembre de 2013

Moviendo Pixeles

En esta ocasión veremos un programa que nos servirá como introducción a la graficación en C++.

Para esto vamos a utilizar el IDE denominado Borland C++ Builder para realizarlo.

La forma solamente tendrá un "Timer", debido a que graficaremos directamente sobre ella y es un programa tan básico que no empleara ningún botón para funcionar. El Timer empezara a funcionar en cuanto la forma sea creada.

El código quedará de la siguiente manera:

Para el archivo ".h":

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
        TTimer *Timer1;
        void __fastcall FormPaint(TObject *Sender);
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
private: // User declarations
  POINT Puntos[10000]; // Matriz para mantener la posición de 10000 puntos
  int Contador; // Contador general para la matriz anterior
  int MediaX, MediaY; // Punto medio del área de dibujo.- a donde se dirigiran los pixeles
public: // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
 y el .cpp quedaria de la siguiente manera: