Páginas

domingo, 27 de noviembre de 2011

Proyecto Unidad II




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

#include
#pragma hdrstop
#include "Unit3.h"
#include "Unit1.h"
#include "UnidadII.h"
#include "Matrix.h"
#include "dos.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------

int x1,y1,x2,y2;
int tx=20,ty=20,Tx=20,Ty=3;
int ancho;

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{

//SUBE
if(tx<=25)
{


PaintBox1->Refresh();

//FIGURA
Matrix fig,id,fres;
//nreng
fig.Inicializa(76,3);
id.Inicializa(77,3);
fres.Inicializa(76,3);


for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);

fres.traslacion(fig,id,tx,ty);

int L =40;
int M = PaintBox1->Height-10;
UnidadII obj;
obj.Ventana((PaintBox1->Width-10),0,(PaintBox1->Width),PaintBox1->Height-10);
obj.Puerto_Vision((PaintBox1->Width-10),0,(PaintBox1->Width),PaintBox1->Height-10);

int x,y;

obj.Mapeo(fres.GETM(0,0), fres.GETM(0,1), &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
for(int i=0; i {
obj.Mapeo(fres.GETM(i,0),fres.GETM(i,1), &x, &y, L, M);
PaintBox1->Canvas->LineTo(x, y);
}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

tx++;

}


//BAJA
if(tx>25 && tx<31)
{

PaintBox1->Refresh();
PaintBox1->Repaint();
//int Fig [36][2]={{50,10},{50,20},{30,20},{30,30},{20,30},{20,40},{10,40},{10,80},{20,80},{20,90},{10,90},{10,110},{20,110},{20,120},{30,120},{30,130},{40,130},{40,140},{60,140},{60,150},{110,150},{110,140},{130,140},{130,130},{140,130},{140,110},{150,110},{150,110},{150,50},{140,50},{140,30},{130,30},{130,20},{110,20},{110,10},{50,10}};

//FIGURA
Matrix fig,id,fres;
//nreng
fig.Inicializa(76,3);
id.Inicializa(77,3);
fres.Inicializa(76,3);


for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);

fres.traslacion(fig,id,tx,ty);

int L =0;
int M = PaintBox1->Height-10;
UnidadII obj;
obj.Ventana((PaintBox1->Width-10),0,(PaintBox1->Width),PaintBox1->Height-10);
obj.Puerto_Vision((PaintBox1->Width-10),0,(PaintBox1->Width),PaintBox1->Height-10);

int x,y;

obj.Mapeo(fres.GETM(0,0), fres.GETM(0,1), &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
for(int i=0; i {
obj.Mapeo(fres.GETM(i,0),fres.GETM(i,1), &x, &y, L, M);
PaintBox1->Canvas->LineTo(x, y);
}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

ty-=20;
tx++;

}



if(tx>=30)
{

Label1->Visible=true;
SpeedButton2->Visible=true;
/* PaintBox1->Repaint();
Matrix fig,id,fres;
//nreng
fig.Inicializa(76,3);
id.Inicializa(75,3);
fres.Inicializa(76,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.reflexion_con_Y(fig,id);


//fres.rotacion(fig,id,grados);
int L =PaintBox1->Width/4;
int M = PaintBox1->Height-10;
UnidadII obj;
obj.Ventana((PaintBox1->Width)/2,0,(PaintBox1->Width),PaintBox1->Height/2);
obj.Puerto_Vision((PaintBox1->Width)/2,0,(PaintBox1->Width),PaintBox1->Height/2);
int x,y;

obj.Mapeo(fres.GETM(0,0), fres.GETM(0,1), &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
for(int i=0; i {
PaintBox1->Canvas->Pen->Color=clWhite;
obj.Mapeo(fres.GETM(i,0),fres.GETM(i,1), &x, &y, L, M);
PaintBox1->Canvas->LineTo(x, y);

}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);


// Timer2->Enabled=true;
//Timer1->Enabled=false; */

PaintBox2->Visible=true;

}






}
//---------------------------------------------------------------------------









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





void __fastcall TForm1::FormCreate(TObject *Sender)
{
MediaPlayer1->FileName = "C:\\Documents and Settings\\Administrador\\Escritorio\\Proyecto_Transformaciones\\Sound_136.mp3";
try {
MediaPlayer1->Open();
MediaPlayer1->Wait = true;
MediaPlayer1->Play();
MediaPlayer1->Close();
}
catch (Exception & e) {
//Error (MediaPlayer1->FileName, e);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::PaintBox2Paint(TObject *Sender)
{
//Gorro
Fig1[0][0]= 40; Fig1[0][1]= 170; Fig1[0][2]= 1;
Fig1[1][0]= 90; Fig1[1][1]= 170; Fig1[1][2]= 1;
Fig1[2][0]= 90; Fig1[2][1]= 160; Fig1[2][2]= 1;
Fig1[3][0]= 120; Fig1[3][1]= 160; Fig1[3][2]= 1;
Fig1[4][0]= 120; Fig1[4][1]= 150; Fig1[4][2]= 1;
Fig1[5][0]= 30; Fig1[5][1]= 150; Fig1[5][2]= 1;
Fig1[6][0]= 30; Fig1[6][1]= 160; Fig1[6][2]= 1;
Fig1[7][0]= 40; Fig1[7][1]= 160; Fig1[7][2]= 1;
Fig1[8][0]= 40; Fig1[8][1]= 170; Fig1[8][2]= 1;

//pelo
Fig1[9][0]= 30; Fig1[9][1]= 150; Fig1[9][2]= 1;
Fig1[10][0]= 60; Fig1[10][1]= 150; Fig1[10][2]= 1;
Fig[11][0]= 60; Fig1[11][1]= 140; Fig1[11][2]= 1;
Fig1[12][0]= 50; Fig1[12][1]= 140; Fig1[12][2]= 1;
Fig1[13][0]= 50; Fig1[13][1]= 130; Fig1[13][2]= 1;
Fig1[14][0]= 60; Fig1[14][1]= 130; Fig1[14][2]= 1;
Fig1[15][0]= 60; Fig1[15][1]= 120; Fig1[15][2]= 1;
Fig1[16][0]= 40; Fig1[16][1]= 120; Fig1[16][2]= 1;
Fig1[17][0]= 40; Fig1[17][1]= 140; Fig1[17][2]= 1;
Fig1[18][0]= 30; Fig1[18][1]= 140; Fig1[18][2]= 1;
Fig1[19][0]= 30; Fig1[19][1]= 120; Fig1[19][2]= 1;
Fig1[20][0]= 40; Fig1[20][1]= 120; Fig1[20][2]= 1;
Fig1[21][0]= 40; Fig1[21][1]= 110; Fig1[21][2]= 1;
Fig1[22][0]= 20; Fig1[22][1]= 110; Fig1[22][2]= 1;
Fig1[23][0]= 20; Fig1[23][1]= 140; Fig1[23][2]= 1;
Fig1[24][0]= 30; Fig1[24][1]= 140; Fig1[24][2]= 1;
Fig1[25][0]= 30; Fig1[25][1]= 150; Fig1[25][2]= 1;


//ojo-bigote
Fig1[26][0]= 80; Fig1[26][1]= 150; Fig1[26][2]= 1;
Fig1[27][0]= 90; Fig1[27][1]= 150; Fig1[27][2]= 1;
Fig1[28][0]= 90; Fig1[28][1]= 130; Fig1[28][2]= 1;
Fig1[29][0]= 100; Fig1[29][1]= 130; Fig1[29][2]= 1;
Fig1[30][0]= 100; Fig1[30][1]= 120; Fig1[30][2]= 1;
Fig1[31][0]= 120; Fig1[31][1]= 120; Fig1[31][2]= 1;
Fig1[32][0]= 120; Fig1[32][1]= 110; Fig1[32][2]= 1;
Fig1[33][0]= 80; Fig1[33][1]= 110; Fig1[33][2]= 1;
Fig1[34][0]= 80; Fig1[34][1]= 120; Fig1[34][2]= 1;
Fig1[35][0]= 90; Fig1[35][1]= 120; Fig1[35][2]= 1;
Fig1[36][0]= 90; Fig1[36][1]= 130; Fig1[36][2]= 1;
Fig1[37][0]= 80; Fig1[37][1]= 130; Fig1[37][2]= 1;
Fig1[38][0]= 80; Fig1[38][1]= 150; Fig1[38][2]= 1;

//cara
Fig1[39][0]= 100; Fig1[39][1]= 150; Fig1[39][2]= 1;
Fig1[40][0]= 100; Fig1[40][1]= 140; Fig1[40][2]= 1;
Fig1[41][0]= 120; Fig1[41][1]= 140; Fig1[41][2]= 1;
Fig1[42][0]= 120; Fig1[42][1]= 130; Fig1[42][2]= 1;
Fig1[43][0]= 130; Fig1[43][1]= 130; Fig1[43][2]= 1;
Fig1[44][0]= 130; Fig1[44][1]= 120; Fig1[44][2]= 1;
Fig1[45][0]= 120; Fig1[45][1]= 120; Fig1[45][2]= 1;
Fig1[46][0]= 120; Fig1[46][1]= 110; Fig1[46][2]= 1;
Fig1[47][0]= 110; Fig1[47][1]= 110; Fig1[47][2]= 1;
Fig1[48][0]= 110; Fig1[48][1]= 100; Fig1[48][2]= 1;
Fig1[49][0]= 40; Fig1[49][1]= 100; Fig1[49][2]= 1;
Fig1[50][0]= 40; Fig1[50][1]= 110; Fig1[50][2]= 1;

//traje
Fig1[51][0]= 40; Fig1[51][1]= 60; Fig1[51][2]= 1;
Fig1[52][0]= 40; Fig1[52][1]= 50; Fig1[52][2]= 1;
Fig1[53][0]= 30; Fig1[53][1]= 50; Fig1[53][2]= 1;
Fig1[54][0]= 30; Fig1[54][1]= 30; Fig1[54][2]= 1;
Fig1[55][0]= 50; Fig1[55][1]= 30; Fig1[55][2]= 1;
Fig1[56][0]= 60; Fig1[56][1]= 30; Fig1[56][2]= 1;
Fig1[57][0]= 60; Fig1[57][1]= 40; Fig1[57][2]= 1;
Fig1[58][0]= 80; Fig1[58][1]= 40; Fig1[58][2]= 1;
Fig1[59][0]= 80; Fig1[59][1]= 30; Fig1[59][2]= 1;
Fig1[60][0]= 110; Fig1[60][1]= 30; Fig1[60][2]= 1;
Fig1[61][0]= 110; Fig1[61][1]= 50; Fig1[61][2]= 1;
Fig1[62][0]= 100; Fig1[62][1]= 50; Fig1[62][2]= 1;
Fig1[63][0]= 100; Fig1[63][1]= 60; Fig1[63][2]= 1;

//playera
Fig1[64][0]= 50; Fig1[64][1]= 100; Fig1[64][2]= 1;
Fig1[65][0]= 30; Fig1[65][1]= 100; Fig1[65][2]= 1;
Fig1[66][0]= 30; Fig1[66][1]= 90; Fig1[66][2]= 1;
Fig1[67][0]= 20; Fig1[67][1]= 90; Fig1[67][2]= 1;
Fig1[68][0]= 20; Fig1[68][1]= 80; Fig1[68][2]= 1;
Fig1[69][0]= 10; Fig1[69][1]= 80; Fig1[69][2]= 1;
Fig1[70][0]= 10; Fig1[70][1]= 70; Fig1[70][2]= 1;
Fig1[71][0]= 30; Fig1[71][1]= 70; Fig1[71][2]= 1;
Fig1[72][0]= 30; Fig1[72][1]= 60; Fig1[72][2]= 1;
Fig1[73][0]= 40; Fig1[73][1]= 60; Fig1[73][2]= 1;
Fig1[74][0]= 40; Fig1[74][1]= 70; Fig1[74][2]= 1;
Fig1[75][0]= 50; Fig1[75][1]= 70; Fig1[75][2]= 1;
Fig1[76][0]= 50; Fig1[76][1]= 60; Fig1[76][2]= 1;
Fig1[77][0]= 60; Fig1[77][1]= 60; Fig1[77][2]= 1;
Fig1[78][0]= 60; Fig1[78][1]= 70; Fig1[78][2]= 1;
Fig1[79][0]= 50; Fig1[79][1]= 70; Fig1[79][2]= 1;
Fig1[80][0]= 50; Fig1[80][1]= 100; Fig1[80][2]= 1;
Fig1[81][0]= 60; Fig1[81][1]= 100; Fig1[81][2]= 1;
Fig1[82][0]= 60; Fig1[82][1]= 80; Fig1[82][2]= 1;
Fig1[83][0]= 80; Fig1[83][1]= 80; Fig1[83][2]= 1;
Fig1[84][0]= 80; Fig1[84][1]= 90; Fig1[84][2]= 1;
Fig1[85][0]= 90; Fig1[85][1]= 90; Fig1[85][2]= 1;
Fig1[86][0]= 90; Fig1[86][1]= 100; Fig1[86][2]= 1;
Fig1[87][0]= 90; Fig1[87][1]= 90; Fig1[87][2]= 1;
Fig1[88][0]= 90; Fig1[88][1]= 70; Fig1[88][2]= 1;
Fig1[89][0]= 80; Fig1[89][1]= 70; Fig1[89][2]= 1;
Fig1[90][0]= 80; Fig1[90][1]= 60; Fig1[90][2]= 1;
Fig1[91][0]= 90; Fig1[91][1]= 60; Fig1[91][2]= 1;
Fig1[92][0]= 90; Fig1[92][1]= 70; Fig1[92][2]= 1;
Fig1[93][0]= 100; Fig1[93][1]= 70; Fig1[93][2]= 1;
Fig1[94][0]= 100; Fig1[94][1]= 60; Fig1[94][2]= 1;
Fig1[95][0]= 110; Fig1[95][1]= 60; Fig1[95][2]= 1;
Fig1[96][0]= 110; Fig1[96][1]= 70; Fig1[96][2]= 1;
Fig1[97][0]= 130; Fig1[97][1]= 70; Fig1[97][2]= 1;
Fig1[98][0]= 130; Fig1[98][1]= 80; Fig1[98][2]= 1;
Fig1[99][0]= 120; Fig1[99][1]= 80; Fig1[99][2]= 1;
Fig1[100][0]= 120; Fig1[100][1]= 90; Fig1[100][2]= 1;
Fig1[101][0]= 90; Fig1[101][1]= 90; Fig1[101][2]= 1;

//mano izquierda
Fig1[102][0]= 10; Fig1[102][1]= 70; Fig1[102][2]= 1;
Fig1[103][0]= 10; Fig1[103][1]= 40; Fig1[103][2]= 1;
Fig1[104][0]= 30; Fig1[104][1]= 40; Fig1[104][2]= 1;

//mano derecha
Fig1[105][0]= 130; Fig1[105][1]= 70; Fig1[105][2]= 1;
Fig1[106][0]= 130; Fig1[106][1]= 40; Fig1[106][2]= 1;
Fig1[107][0]= 110; Fig1[107][1]= 40; Fig1[107][2]= 1;

//zapato izquierdo
Fig1[108][0]= 30; Fig1[108][1]= 30; Fig1[108][2]= 1;
Fig1[109][0]= 20; Fig1[109][1]= 30; Fig1[109][2]= 1;
Fig1[110][0]= 20; Fig1[110][1]= 20; Fig1[110][2]= 1;
Fig1[111][0]= 10; Fig1[111][1]= 20; Fig1[111][2]= 1;
Fig1[112][0]= 10; Fig1[112][1]= 10; Fig1[112][2]= 1;
Fig1[113][0]= 50; Fig1[113][1]= 10; Fig1[113][2]= 1;
Fig1[114][0]= 50; Fig1[114][1]= 30; Fig1[114][2]= 1;

//zapato derecha
Fig1[115][0]= 110; Fig1[115][1]= 30; Fig1[115][2]= 1;
Fig1[116][0]= 120; Fig1[116][1]= 30; Fig1[116][2]= 1;
Fig1[117][0]= 120; Fig1[117][1]= 20; Fig1[117][2]= 1;
Fig1[118][0]= 130; Fig1[118][1]= 20; Fig1[118][2]= 1;
Fig1[119][0]= 130; Fig1[119][1]= 10; Fig1[119][2]= 1;
Fig1[120][0]= 90; Fig1[120][1]= 10; Fig1[120][2]= 1;
Fig1[121][0]= 90; Fig1[121][1]= 30; Fig1[121][2]= 1;





int L =0;
int M = PaintBox2->Height-10;
UnidadII obj;
obj.Ventana((PaintBox2->Width-10),0,(PaintBox2->Width),PaintBox2->Height-10);
obj.Puerto_Vision((PaintBox2->Width-10),0,(PaintBox2->Width),PaintBox2->Height-10);

int x1,y1;

//gorro
obj.Mapeo(Fig1[0][0], Fig1[0][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=0; i< 9; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

//pelo
obj.Mapeo(Fig1[9][0], Fig1[9][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=9; i< 26; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}


//ojo bigote
obj.Mapeo(Fig1[26][0], Fig1[26][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=26; i< 39; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

//cara
obj.Mapeo(Fig1[39][0], Fig1[39][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=39; i< 51; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

//traje
obj.Mapeo(Fig1[51][0], Fig1[51][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=51; i< 64; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1,y1);
}

//playera
obj.Mapeo(Fig1[64][0], Fig1[64][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=64; i< 102; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

//mano izquierda
obj.Mapeo(Fig1[102][0], Fig1[102][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=102; i< 105; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

//mano derecha
obj.Mapeo(Fig1[105][0], Fig1[105][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=105; i< 108; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

//zapato izquierda
obj.Mapeo(Fig1[108][0], Fig1[108][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=108; i< 115; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

//zapato derecha
obj.Mapeo(Fig1[115][0], Fig1[115][1], &x1, &y1, L, M);
PaintBox2->Canvas->MoveTo(x1,y1);
PaintBox2->Canvas->Pen->Color=clWhite;
PaintBox2->Canvas->Brush->Color=clWhite;

for(int i=115; i< 122; i++)
{

obj.Mapeo(Fig1[i][0],Fig1[i][1], &x1, &y1, L, M);

PaintBox2->Canvas->LineTo(x1, y1);
}

Sleep(1000);

//Timer2->Enabled=true;



}
//---------------------------------------------------------------------------



void __fastcall TForm1::Button2Click(TObject *Sender)
{


Fig2[0][0]= 10; Fig2[0][1]= 10; Fig2[0][2]= 1;
Fig2[1][0]= 30; Fig2[1][1]= 10; Fig2[1][2]= 1;
Fig2[2][0]= 30; Fig2[2][1]= 30; Fig2[2][2]= 1;
Fig2[3][0]= 10; Fig2[3][1]= 30; Fig2[3][2]= 1;
Fig2[4][0]= 10; Fig2[4][1]= 10; Fig2[4][2]= 1;

int L =0;
int M = PaintBox3->Height-10;
UnidadII obj;
obj.Ventana((PaintBox3->Width-10),0,(PaintBox3->Width),PaintBox3->Height-10);
obj.Puerto_Vision((PaintBox3->Width-10),0,(PaintBox3->Width),PaintBox3->Height-10);

int x1,y1;


obj.Mapeo(Fig2[0][0], Fig2[0][1], &x1, &y1, L, M);
PaintBox3->Canvas->MoveTo(x1,y1);

for(int i=0; i< 9; i++)
{

obj.Mapeo(Fig2[i][0],Fig2[i][1], &x1, &y1, L, M);
PaintBox3->Canvas->Pen->Color=clYellow;
PaintBox3->Canvas->LineTo(x1, y1);
}

Timer1->Enabled=false;



}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{




/*if(Tx==299)
Timer1->Enabled=true; */

}
//---------------------------------------------------------------------------



void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{


PaintBox1->Refresh();


ancho = Panel1->Width;
//FIGURA
Fig[0][0]= 50; Fig[0][1]= 10; Fig[0][2]= 1;
Fig[1][0]= 50; Fig[1][1]= 20; Fig[1][2]= 1;
Fig[2][0]= 30; Fig[2][1]= 20; Fig[2][2]= 1;
Fig[3][0]= 30; Fig[3][1]= 30; Fig[3][2]= 1;
Fig[4][0]= 20; Fig[4][1]= 30; Fig[4][2]= 1;
Fig[5][0]= 20; Fig[5][1]= 40; Fig[5][2]= 1;
Fig[6][0]= 10; Fig[6][1]= 40; Fig[6][2]= 1;
Fig[7][0]= 10; Fig[7][1]= 80; Fig[7][2]= 1;
Fig[8][0]= 20; Fig[8][1]= 80; Fig[8][2]= 1;
Fig[9][0]= 20; Fig[9][1]= 90; Fig[9][2]= 1;
Fig[10][0]= 10; Fig[10][1]= 90; Fig[10][2]= 1;
Fig[11][0]= 10; Fig[11][1]= 110; Fig[11][2]= 1;
Fig[12][0]= 20; Fig[12][1]= 110; Fig[12][2]= 1;
Fig[13][0]= 20; Fig[13][1]= 120; Fig[13][2]= 1;
Fig[14][0]= 30; Fig[14][1]= 120; Fig[14][2]= 1;
Fig[15][0]= 30; Fig[15][1]= 130; Fig[15][2]= 1;
Fig[16][0]= 40; Fig[16][1]= 130; Fig[16][2]= 1;
Fig[17][0]= 40; Fig[17][1]= 140; Fig[17][2]= 1;
Fig[18][0]= 60; Fig[18][1]= 140; Fig[18][2]= 1;
Fig[19][0]= 60; Fig[19][1]= 150; Fig[19][2]= 1;
Fig[20][0]= 110; Fig[20][1]= 150; Fig[20][2]= 1;
Fig[21][0]= 110; Fig[21][1]= 140; Fig[21][2]= 1;
Fig[22][0]= 130; Fig[22][1]= 140; Fig[22][2]= 1;
Fig[23][0]= 130; Fig[23][1]= 130; Fig[23][2]= 1;
Fig[24][0]= 140; Fig[24][1]= 130; Fig[24][2]= 1;
Fig[25][0]= 140; Fig[25][1]= 110; Fig[25][2]= 1;
Fig[26][0]= 150; Fig[26][1]= 110; Fig[26][2]= 1;
Fig[27][0]= 150; Fig[27][1]= 50; Fig[27][2]= 1;
Fig[28][0]= 140; Fig[28][1]= 50; Fig[28][2]= 1;
Fig[29][0]= 140; Fig[29][1]= 30; Fig[29][2]= 1;
Fig[30][0]= 130; Fig[30][1]= 30; Fig[30][2]= 1;
Fig[31][0]= 130; Fig[31][1]= 20; Fig[31][2]= 1;
Fig[32][0]= 110; Fig[32][1]= 20; Fig[32][2]= 1;
Fig[33][0]= 110; Fig[33][1]= 10; Fig[33][2]= 1;
Fig[34][0]= 50; Fig[34][1]= 10; Fig[34][2]= 1;
//ojo1
Fig[35][0]= 100; Fig[35][1]= 120; Fig[35][2]= 1;
Fig[36][0]= 110; Fig[36][1]= 120; Fig[36][2]= 1;
Fig[37][0]= 110; Fig[37][1]= 90; Fig[37][2]= 1;
Fig[38][0]= 100; Fig[38][1]= 90; Fig[38][2]= 1;
Fig[39][0]= 100; Fig[39][1]= 120; Fig[39][2]= 1;

//ojo2
Fig[40][0]= 120; Fig[40][1]= 120; Fig[40][2]= 1;
Fig[41][0]= 130; Fig[41][1]= 120; Fig[41][2]= 1;
Fig[42][0]= 130; Fig[42][1]= 90; Fig[42][2]= 1;
Fig[43][0]= 120; Fig[43][1]= 90; Fig[43][2]= 1;
Fig[44][0]= 120; Fig[44][1]= 120; Fig[44][2]= 1;

//boca
Fig[45][0]= 80; Fig[45][1]= 30; Fig[45][2]= 1;
Fig[46][0]= 80; Fig[46][1]= 50; Fig[46][2]= 1;
Fig[47][0]= 90; Fig[47][1]= 50; Fig[47][2]= 1;
Fig[48][0]= 90; Fig[48][1]= 80; Fig[48][2]= 1;
Fig[49][0]= 100; Fig[49][1]= 80; Fig[49][2]= 1;
Fig[50][0]= 100; Fig[50][1]= 70; Fig[50][2]= 1;
Fig[51][0]= 110; Fig[51][1]= 70; Fig[51][2]= 1;
Fig[52][0]= 110; Fig[52][1]= 80; Fig[52][2]= 1;
Fig[53][0]= 120; Fig[53][1]= 80; Fig[53][2]= 1;
Fig[54][0]= 120; Fig[54][1]= 70; Fig[54][2]= 1;
Fig[55][0]= 130; Fig[55][1]= 70; Fig[55][2]= 1;
Fig[56][0]= 130; Fig[56][1]= 80; Fig[56][2]= 1;
Fig[57][0]= 140; Fig[57][1]= 80; Fig[57][2]= 1;
Fig[58][0]= 140; Fig[58][1]= 50; Fig[58][2]= 1;
Fig[59][0]= 130; Fig[59][1]= 50; Fig[59][2]= 1;
Fig[60][0]= 130; Fig[60][1]= 30; Fig[60][2]= 1;
Fig[61][0]= 120; Fig[61][1]= 30; Fig[61][2]= 1;
Fig[62][0]= 120; Fig[62][1]= 40; Fig[62][2]= 1;
Fig[63][0]= 110; Fig[63][1]= 40; Fig[63][2]= 1;
Fig[64][0]= 110; Fig[64][1]= 30; Fig[64][2]= 1;
Fig[65][0]= 100; Fig[65][1]= 30; Fig[65][2]= 1;
Fig[66][0]= 100; Fig[66][1]= 40; Fig[66][2]= 1;
Fig[67][0]= 90; Fig[67][1]= 40; Fig[67][2]= 1;
Fig[68][0]= 90; Fig[68][1]= 30; Fig[68][2]= 1;
Fig[69][0]= 80; Fig[69][1]= 30; Fig[69][2]= 1;

//manilla

Fig[70][0]= 50; Fig[70][1]= 70; Fig[70][2]= 1;
Fig[71][0]= 40; Fig[71][1]= 70; Fig[71][2]= 1;
Fig[72][0]= 40; Fig[72][1]= 80; Fig[72][2]= 1;
Fig[73][0]= 30; Fig[73][1]= 80; Fig[73][2]= 1;
Fig[74][0]= 30; Fig[74][1]= 110; Fig[74][2]= 1;
Fig[75][0]= 60; Fig[75][1]= 110; Fig[75][2]= 1;
Fig[76][0]= 60; Fig[76][1]= 90; Fig[76][2]= 1;
Fig[77][0]= 70; Fig[77][1]= 90; Fig[77][2]= 1;

//__----------------------------------------- MARIO




int L =0;
int M = PaintBox1->Height-10;

UnidadII obj;

obj.Ventana((PaintBox1->Width-10),0,(PaintBox1->Width),PaintBox1->Height-10);
obj.Puerto_Vision((PaintBox1->Width-10),0,(PaintBox1->Width),PaintBox1->Height-10);

int x,y;

//figura
obj.Mapeo(Fig[0][0], Fig[0][1], &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
PaintBox1->Canvas->Pen->Color=clWhite;
PaintBox1->Canvas->Brush->Color=clWhite;

for(int i=0; i< 35; i++)
{

obj.Mapeo(Fig[i][0],Fig[i][1], &x, &y, L, M);

PaintBox1->Canvas->LineTo(x, y);
}
// PaintBox1->Canvas->FloodFill(x,y,clWhite,fsBorder);

//ojo 1
obj.Mapeo(Fig[35][0], Fig[35][1], &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
for(int i=35; i< 45; i++)
{ PaintBox1->Canvas->Pen->Color=clBlue;
obj.Mapeo(Fig[i][0],Fig[i][1], &x, &y, L, M);
PaintBox1->Canvas->LineTo(x, y);
}
//ojo 2
obj.Mapeo(Fig[40][0], Fig[40][1], &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
for(int i=40; i< 45; i++)
{ PaintBox1->Canvas->Pen->Color=clBlue;
obj.Mapeo(Fig[i][0],Fig[i][1], &x, &y, L, M);
PaintBox1->Canvas->LineTo(x, y);
}

//boca
obj.Mapeo(Fig[45][0], Fig[45][1], &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
for(int i=45; i< 70; i++)
{ PaintBox1->Canvas->Pen->Color=clRed;
obj.Mapeo(Fig[i][0],Fig[i][1], &x, &y, L, M);
PaintBox1->Canvas->LineTo(x, y);
}

//manilla
obj.Mapeo(Fig[70][0], Fig[70][1], &x, &y, L, M);
PaintBox1->Canvas->MoveTo(x,y);
for(int i=70; i< 78; i++)
{ PaintBox1->Canvas->Pen->Color=clWhite;
obj.Mapeo(Fig[i][0],Fig[i][1], &x, &y, L, M);
PaintBox1->Canvas->LineTo(x, y);
}





Timer1->Enabled=true;

MediaPlayer1->FileName = "C:\\Documents and Settings\\Administrador\\Escritorio\\Proyecto_Transformaciones\\Sound_223.mp3";
try {
MediaPlayer1->Open();
MediaPlayer1->Wait = true;
MediaPlayer1->Play();
MediaPlayer1->Close();
}
catch (Exception & e) {
//Error (MediaPlayer1->FileName, e);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
Fig2[0][0]= 10; Fig2[0][1]= 10; Fig2[0][2]= 1;
Fig2[1][0]= 30; Fig2[1][1]= 10; Fig2[1][2]= 1;
Fig2[2][0]= 30; Fig2[2][1]= 30; Fig2[2][2]= 1;
Fig2[3][0]= 10; Fig2[3][1]= 30; Fig2[3][2]= 1;
Fig2[4][0]= 10; Fig2[4][1]= 10; Fig2[4][2]= 1;

int L =0;
int M = PaintBox3->Height-10;
UnidadII obj;
obj.Ventana((PaintBox3->Width-10),0,(PaintBox3->Width),PaintBox3->Height-10);
obj.Puerto_Vision((PaintBox3->Width-10),0,(PaintBox3->Width),PaintBox3->Height-10);

int x1,y1;


obj.Mapeo(Fig2[0][0], Fig2[0][1], &x1, &y1, L, M);
PaintBox3->Canvas->MoveTo(x1,y1);

for(int i=0; i< 9; i++)
{

obj.Mapeo(Fig2[i][0],Fig2[i][1], &x1, &y1, L, M);
PaintBox3->Canvas->Pen->Color=clYellow;
PaintBox3->Canvas->LineTo(x1, y1);
}
Timer1->Enabled=false;

if(Tx<250)
{


PaintBox3->Refresh();
//FIGURA
Matrix fig,id,fres;
//nreng
fig.Inicializa(5,3);
id.Inicializa(4,3);
fres.Inicializa(5,3);


for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig2[i][j]);

fres.traslacion(fig,id,Tx,Ty);


obj.Ventana((PaintBox3->Width-10),0,(PaintBox3->Width),PaintBox3->Height-10);
obj.Puerto_Vision((PaintBox3->Width-10),0,(PaintBox3->Width),PaintBox3->Height-10);

int x,y;

obj.Mapeo(fres.GETM(0,0), fres.GETM(0,1), &x, &y, L, M);
PaintBox3->Canvas->MoveTo(x,y);
for(int i=0; i {
obj.Mapeo(fres.GETM(i,0),fres.GETM(i,1), &x, &y, L, M);
PaintBox3->Canvas->LineTo(x, y);
}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

Tx+=20;
}
if(Tx>=250)
{

Image2->Visible=true;
MediaPlayer1->FileName = "C:\\Documents and Settings\\Administrador\\Escritorio\\Proyecto_Transformaciones\\Sound_211.mp3";
try {
MediaPlayer1->Open();
MediaPlayer1->Wait = true;
MediaPlayer1->Play();
MediaPlayer1->Close();
}
catch (Exception & e) {
//Error (MediaPlayer1->FileName, e);
}


MediaPlayer1->FileName = "C:\\Documents and Settings\\Administrador\\Escritorio\\Proyecto_Transformaciones\\Sound_220.mp3";
try {
MediaPlayer1->Open();
MediaPlayer1->Wait = true;
MediaPlayer1->Play();
MediaPlayer1->Close();
}
catch (Exception & e) {
//Error (MediaPlayer1->FileName, e);
}

Image3->Visible=true;
MediaPlayer1->FileName = "C:\\Documents and Settings\\Administrador\\Escritorio\\Proyecto_Transformaciones\\Sound_228.mp3";
try {
MediaPlayer1->Open();
MediaPlayer1->Wait = true;
MediaPlayer1->Play();
MediaPlayer1->Close();
}
catch (Exception & e) {
//Error (MediaPlayer1->FileName, e);
}


}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image4Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
//ShowMessage("ELABORADO POR: Alejandra Estefania Luna Araiz\n\n FECHA: 26 de noviembre del 2011\n\n MATERIA: Graficacion");
Form3->Show();
}
//---------------------------------------------------------------------------

Transformaciones GDI




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
// Create a Graphics object
Graphics g = this.CreateGraphics();
g.Clear(this.BackColor);
// Create a blue pen with width of 2
Pen bluePen = new Pen(Color.Blue, 2);
Point pt1 = new Point(10, 10);
Point pt2 = new Point(20, 20);
Color[] lnColors = { Color.Black, Color.Red };
Rectangle rect1 = new Rectangle(10, 10, 15, 15);
// Create two linear gradient brushes
LinearGradientBrush lgBrush1 = new LinearGradientBrush
(rect1, Color.Blue, Color.Green, LinearGradientMode.BackwardDiagonal);
LinearGradientBrush lgBrush = new LinearGradientBrush
(pt1, pt2, Color.Red, Color.Green);
// Set linear colors
lgBrush.LinearColors = lnColors;
// Set gamma correction
lgBrush.GammaCorrection = true;
// Fill and draw rectangle and ellipses
g.FillRectangle(lgBrush, 150, 0, 50, 100);
g.DrawEllipse(bluePen, 0, 0, 100, 50);
g.FillEllipse(lgBrush1, 300, 0, 100, 100);
// Apply scale transformation
g.ScaleTransform(1, 0.5f);
// Apply translate transformation
g.TranslateTransform(50, 0, MatrixOrder.Append);
// Apply rotate transformation
g.RotateTransform(30.0f, MatrixOrder.Append);
// Fill ellipse
g.FillEllipse(lgBrush1, 300, 0, 100, 100);
// Rotate again
g.RotateTransform(15.0f, MatrixOrder.Append);
// Fill rectangle
g.FillRectangle(lgBrush, 150, 0, 50, 100);
// Rotate again
g.RotateTransform(15.0f, MatrixOrder.Append);
// Draw ellipse
g.DrawEllipse(bluePen, 0, 0, 100, 50);
// Dispose of objects
lgBrush1.Dispose();
lgBrush.Dispose();
bluePen.Dispose();
g.Dispose();
}

private void button2_Click(object sender, EventArgs e)
{
// Create a Graphics object
Graphics g = this.CreateGraphics();
g.Clear(this.BackColor);
// Create a GraphicsPath object
GraphicsPath path = new GraphicsPath();
// Add an ellipse and a line to the
// graphics path
path.AddEllipse(50, 50, 100, 150);
path.AddLine(20, 20, 200, 20);
// Create a blue pen with a width of 2
Pen bluePen = new Pen(Color.Blue, 2);
// Create a Matrix object
Matrix X = new Matrix();
// Rotate 30 degrees
X.Rotate(30);
// Translate with 50 offset in x direction
X.Translate(50.0f, 0);
// Apply transformation on the path
path.Transform(X);
// Draw a rectangle, a line, and the path
g.DrawRectangle(Pens.Green, 200, 50, 100, 100);
g.DrawLine(Pens.Green, 30, 20, 200, 20);
g.DrawPath(bluePen, path);
// Dispose of objects
bluePen.Dispose();
path.Dispose();
g.Dispose();
}
}
}

Transformaciones Basicas C++




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

#include
#pragma hdrstop

#include "UITransformaciones.h"
#include "Matrix.h"
#include "Mapeo.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
Form1->Refresh();

int ancho = Panel1->Width;

int grados = 0;

if(TrackBar1->Position>36)
{
grados = TrackBar1->Position;
}
else if(TrackBar1->Position<36)
{
grados = TrackBar1->Position * -1;
}
else
grados = 0;
/*
Matrix fig(4,3,Fig);
Matrix id(3,3,0);
Matrix fres(4,3,0);
*/

Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);

//fres.traslacion(fig,id,tx,ty);
fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);
}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PageControl1->Enabled = true;
Form1->Refresh();
int ancho = Panel1->Width;
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
Fig[0][0]= 10; Fig[0][1]= 10; Fig[0][2]= 1;
Fig[1][0]= 30; Fig[1][1]= 10; Fig[1][2]= 1;
Fig[2][0]= 10; Fig[2][1]= 30; Fig[2][2]= 1;
Fig[3][0]= 10; Fig[3][1]= 10; Fig[3][2]= 1;
//RESPALDAR VALORES
for(int i = 0; i< 4; i++)
for(int j = 0; j < 3; j++)
FigAux[i][j] = Fig[i][j];

UnidadII obj;

obj.ventana((Form1->ClientWidth-ancho)/2,0,(Form1->ClientWidth-ancho),Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,(Form1->ClientWidth-ancho),Form1->ClientHeight/2);

int x,y;

obj.mapeo(Fig[0][0], Fig[0][1], x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i< 4; i++)
{
obj.mapeo(Fig[i][0],Fig[i][1], x, y, L, M);
Canvas->LineTo(x, y);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Refresh();
int ancho = Panel1->Width;
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
//No. de Renglones de la Figura
for(int i=0;i<4;i++)
for(int j=0;j<3;j++)
Fig[i][j]=FigAux[i][j];

UnidadII obj;

obj.ventana(Form1->ClientWidth/2,0,Form1->ClientWidth,Form1->ClientHeight/2);
obj.puerto(Form1->ClientWidth/2,0,Form1->ClientWidth,Form1->ClientHeight/2);

int x,y;

obj.mapeo(Fig[0][0], Fig[0][1], x, y, L, M);
Canvas->MoveTo(x,y);
//No. de Renglones de la Figura
for(int i=0; i<4; i++)
{
obj.mapeo(Fig[i][0],Fig[i][1], x, y, L, M);
Canvas->LineTo(x, y);
}

}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrackBar2Change(TObject *Sender)
{
Form1->Refresh();

Tx = Edit3->Text.ToIntDef(3);
Ty = Edit4->Text.ToIntDef(0);
int ancho = Panel1->Width;

int grados = 0;

if(TrackBar1->Position>36)
{
grados = TrackBar1->Position;
}
else if(TrackBar1->Position<36)
{
grados = TrackBar1->Position * -1;
}
else
grados = 0;
/*
Matrix fig(4,3,Fig);
Matrix id(3,3,0);
Matrix fres(4,3,0);
*/

Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);

//fres.traslacion(fig,id,tx,ty);
//fres.rotacion(fig,id,grados);

fres.rotacion_pivote(fig,id,Tx,Ty,grados);


int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);
}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormPaint(TObject *Sender)
{
//LINEA HORIZONTAL
Canvas->MoveTo(0,Form1->ClientHeight/2);
Canvas->LineTo(Form1->Width-Panel1->ClientWidth,Form1->ClientHeight/2);
//LINEA VERTICAL
Canvas->MoveTo((Form1->ClientWidth-Panel1->Width)/2,0);
Canvas->LineTo((Form1->ClientWidth-Panel1->Width)/2,Form1->ClientHeight);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::TrackBar5Change(TObject *Sender)
{
Form1->Refresh();

int ancho = Panel1->Width;
if(TrackBar5->Position {
Tx = -TrackBar5->Position;
}
else
Tx =TrackBar5->Position;

Ty = TrackBar6->Position;


Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.escalacion(fig,id,Tx,Ty);

//fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);
}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

posAcX = TrackBar5->Position;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar6Change(TObject *Sender)
{
Form1->Refresh();

int ancho = Panel1->Width;
if(TrackBar5->Position {
Tx = -TrackBar5->Position;
}
else
Tx =TrackBar5->Position;

Ty = TrackBar6->Position;


Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.escalacion(fig,id,Tx,Ty);

//fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);

}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

posAcX = TrackBar5->Position;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
switch(ComboBox1->ItemIndex)
{
case 0:
{
Form1->Refresh();

int ancho = Panel1->Width;



Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.reflexion_con_X(fig,id);

//fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);

}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

}
break;

case 1:
{
Form1->Refresh();

int ancho = Panel1->Width;



Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.reflexion_con_Y(fig,id);

//fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);

}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);

}

break;
case 2:
{
Form1->Refresh();

int ancho = Panel1->Width;



Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);


for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.reflexion_eje_coord(fig,id);


//fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);

}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);
}
break;
case 3:
{
Form1->Refresh();

int ancho = Panel1->Width;



Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.reflexion_yigualmenosx(fig,id);

//fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);

}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);
}
break;
case 4:
{
Form1->Refresh();

int ancho = Panel1->Width;



Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);


fres.reflexion_yigualx(fig,id);


//fres.rotacion(fig,id,grados);
int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);

}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);
}
break;
}
}
//---------------------------------------------------------------------------





void __fastcall TForm1::Button4Click(TObject *Sender)
{
Form1->Refresh();
int tx= Edit1->Text.ToIntDef(0);
int ty= Edit2->Text.ToIntDef(0);
int ancho = Panel1->Width;
/*
Matrix fig(4,3,Fig);
Matrix id(3,3,0);
Matrix fres(4,3,0);
*/

Matrix fig,id,fres;
//nreng
fig.Inicializa(4,3);
id.Inicializa(3,3);
fres.Inicializa(4,3);

for(int i=0;i for(int j=0;j fig.SETM(i,j,Fig[i][j]);

fres.traslacion(fig,id,tx,ty);

int L = (Form1->ClientWidth-ancho)/2;
int M = Form1->ClientHeight/2;
UnidadII obj;
obj.ventana((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
obj.puerto((Form1->ClientWidth-ancho)/2,0,Form1->ClientWidth-ancho,Form1->ClientHeight/2);
int x,y;

obj.mapeo(fres.GETM(0,0), fres.GETM(0,1), x, y, L, M);
Canvas->MoveTo(x,y);
for(int i=0; i {
obj.mapeo(fres.GETM(i,0),fres.GETM(i,1), x, y, L, M);
Canvas->LineTo(x, y);
}
for(int i=0;i for(int j=0;j Fig[i][j]=fres.GETM(i,j);
}
//---------------------------------------------------------------------------

Examen Unidad2Avion





/---------------------------------------------------------------------------
#define ROUND(x) ((int)(x+0.5))
#include
#pragma hdrstop

#include "Unit1.h"
#include "math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormClick(TObject *Sender)
{
Repaint();
Inicia();
}
//---------------------------------------------------------------------------
void TForm1::Inicia()
{
int grados,cont = 24;
int Figura[5][2];

Figura[0][0]= 5; Figura[0][1]= -5;
Figura[1][0]= 5; Figura[1][1]= 20;
Figura[2][0]= 1; Figura[2][1]= 1;
Figura[3][0]= 10; Figura[3][1]= 1;
Figura[4][0]= 5; Figura[4][1]= 20;

Dibujar(Figura);
grados = 45;
for(int i = 0; i < cont;i++)
{
Figura[0][0]+= 10; //5;
Figura[1][0]+= 10; //5;
Figura[2][0]+= 10; //5;
Figura[3][0]+= 10; //5;
Figura[4][0]+= 10; //5;
Sleep(30);
Rotar(Figura,grados);
grados+=25;
}
Canvas->Font->Color = clRed;
Canvas->TextOutA(240,0,"CRASH");
}

void TForm1::Dibujar(int Fig[][2])
{
//SUPONGA: ClientWidth = ClientHeight = 500
int centroX = ClientWidth/2;
int centroY = ClientHeight/2;
int x1,y1,x2,y2;
x1 = Fig[2][0];
y1 = Fig[2][1];
Canvas->Pen->Color = RGB(255,95,193);
Canvas->MoveTo(x1+centroX, y1+centroY);
for(int i = 0; i < 5; i++)
{
x2 = Fig[i][0];
y2 = Fig[i][1];
//Line_DDA(x1+centroX, y1+centroY, x2+centroX, //y2+centroY);

Canvas->LineTo(x2+centroX, y2+centroY);
x1 = x2;
y1 = y2;
}
}

void TForm1::Rotar(int fig[][2],int grados)
{
float angulo = grados * M_PI /180.0;
int FiguraT[5][2];
float MatT[2][2];

MatT[0][0]= cos(angulo); MatT[0][1] = sin(angulo);
MatT[1][0]= -sin(angulo); MatT[1][1] = cos(angulo);
for(int i = 0;i < 5; i++)
{
for(int j = 0; j < 2; j++)
{
FiguraT[i][j]= 0;
for(int k = 0; k < 2; k++)
FiguraT[i][j]+= ROUND(fig[i][k]*MatT[k][j]);
}
}
Dibujar(FiguraT);
}

Traslacion y escalacion




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

#include
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "UnidadII.h"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
PaintBox1->Canvas->Pen->Color = clBlue;
PaintBox1->Canvas->Pen->Width = 2;
PaintBox1->Canvas->MoveTo((PaintBox1->Width)/2,0);
PaintBox1->Canvas->LineTo((PaintBox1->Width)/2, PaintBox1->Height);
PaintBox1->Canvas->MoveTo(0,PaintBox1->Height/2);
PaintBox1->Canvas->LineTo(PaintBox1->Width,PaintBox1->Height /2);

/*
transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;y2=10;
x3=20;y3=30;

int Tx=TrackBar1->Position;
int Ty=TrackBar2->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=1;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=1;
m2[1][2]=0;
m2[2][0]=Tx;
m2[2][1]=Ty;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1); */
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
PaintBox1->Refresh();
transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;y2=10;
x3=20;y3=30;

int Tx=TrackBar1->Position;
int Ty=TrackBar2->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=1;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=1;
m2[1][2]=0;
m2[2][0]=Tx;
m2[2][1]=Ty;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar2Change(TObject *Sender)
{
PaintBox1->Refresh();
transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;y2=10;
x3=20;y3=30;

int Tx=TrackBar1->Position;
int Ty=TrackBar2->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=1;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=1;
m2[1][2]=0;
m2[2][0]=Tx;
m2[2][1]=Ty;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1);
}
//---------------------------------------------------------------------------



void __fastcall TForm1::TrackBar3Change(TObject *Sender)
{
PaintBox1->Refresh();
transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;
y2=10;
x3=10;
y3=30;

int Tx=TrackBar3->Position;
int Ty=TrackBar4->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=Tx;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=Ty;
m2[1][2]=0;
m2[2][0]=0;
m2[2][1]=0;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar4Change(TObject *Sender)
{
PaintBox1->Refresh();
transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;
y2=10;
x3=10;
y3=30;

int Tx=TrackBar3->Position;
int Ty=TrackBar4->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=Tx;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=Ty;
m2[1][2]=0;
m2[2][0]=0;
m2[2][1]=0;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1);
}
//---------------------------------------------------------------------------

Examen en java





package Examen;
import java.awt.Color;
import java.awt.Graphics;


/**
*
* @author Peter Ju
*/
public class NewJFrame extends javax.swing.JFrame {

/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {

jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(204, 204, 204));

jPanel1.setBackground(new java.awt.Color(0, 0, 0));
jPanel1.setPreferredSize(new java.awt.Dimension(550, 550));

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 550, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 550, Short.MAX_VALUE)
);

jButton1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
jButton1.setText("Dibuja");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(181, 181, 181)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 30, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(23, 23, 23))
);

pack();
}//


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:
Dibuja();


}

public void Dibuja()
{


Graphics g ;
g = jPanel1.getGraphics();
g.setColor(Color.green);
//g = this.getGraphics();

int i , x, posx, posy;
float y;

int Height = jPanel1.getHeight();
int Width = jPanel1.getWidth();


g.drawRect(10, 10,Width-10,Height-10);
posx = Width -12;
posy = Height -12;

for(i =0, x = posx,y = posy-200;i<21;x-=15,y+=10,i++)
{
g.drawLine(x, posy, posx,(int)y);

}

posx = 11;
posy = Height-12;
for(i =0, x = posx,y = posy-200;i<21;x+=15,y+=10,i++)
{
g.drawLine(x, posy, posx,(int)y);
}

posx = 11;
posy = 11;
for(i =0, x = posx,y = posy+200;i<21;x+=15,y-=10,i++)
{
g.drawLine(x, posy, posx,(int)y);
}

posx = Width -12;
posy = 11;
for(i =0, x = posx,y = posy+200;i<21;x-=15,y-=10,i++)
{
g.drawLine(x, posy, posx,(int)y);
}


//jPanel1


}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;
// End of variables declaration

}

PRACTICA "TRASLACIÓN" clase MATRIX



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

#include
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "UnidadII.h"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
PaintBox1->Canvas->Pen->Color = clBlue;
PaintBox1->Canvas->Pen->Width = 2;
PaintBox1->Canvas->MoveTo((PaintBox1->Width)/2,0);
PaintBox1->Canvas->LineTo((PaintBox1->Width)/2, PaintBox1->Height);
PaintBox1->Canvas->MoveTo(0,PaintBox1->Height/2);
PaintBox1->Canvas->LineTo(PaintBox1->Width,PaintBox1->Height /2);


transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;y2=10;
x3=20;y3=30;

int Tx=TrackBar1->Position;
int Ty=TrackBar2->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=1;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=1;
m2[1][2]=0;
m2[2][0]=Tx;
m2[2][1]=Ty;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
PaintBox1->Refresh();
transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;y2=10;
x3=20;y3=30;

int Tx=TrackBar1->Position;
int Ty=TrackBar2->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=1;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=1;
m2[1][2]=0;
m2[2][0]=Tx;
m2[2][1]=Ty;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar2Change(TObject *Sender)
{
PaintBox1->Refresh();
transforma.Ventana((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);
transforma.Puerto_Vision((PaintBox1->Width)/2,0,PaintBox1->Width, PaintBox1->Height/2);

int L = (PaintBox1->Width)/2;
int M = PaintBox1->Height/2;
x1=10;
y1=10;
x2=30;y2=10;
x3=20;y3=30;

int Tx=TrackBar1->Position;
int Ty=TrackBar2->Position;
//int Tx = ejeX;
//int Ty = ejeY;

int m1[3][3];
m1[0][0]=x1;
m1[0][1]=y1;
m1[0][2]=1;
m1[1][0]=x2;
m1[1][1]=y2;
m1[1][2]=1;
m1[2][0]=x3;
m1[2][1]=y3;
m1[2][2]=1;

int m2[3][3];
m2[0][0]=1;
m2[0][1]=0;
m2[0][2]=0;
m2[1][0]=0;
m2[1][1]=1;
m2[1][2]=0;
m2[2][0]=Tx;
m2[2][1]=Ty;
m2[2][2]=1;
int m3[3][3];
for(int i=0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
m3[i][j]=0;
for(int k = 0; k < 3; k++)
m3[i][j]= m3[i][j] + (m1[i][k] * m2[k][j]);
}
}

x1=m3[0][0];
y1=m3[0][1];
x2=m3[1][0];
y2=m3[1][1];
x3=m3[2][0];
y3=m3[2][1];

transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->MoveTo(xx1,yy1);
transforma.Mapeo(x2,y2,&xx2,&yy2,L,M);
Canvas->LineTo(xx2,yy2);
transforma.Mapeo(x3,y3,&xx3,&yy3,L,M);
Canvas->LineTo(xx3,yy3);
transforma.Mapeo(x1,y1,&xx1,&yy1,L,M);
Canvas->LineTo(xx1,yy1);
}
//---------------------------------------------------------------------------