Páginas

domingo, 27 de noviembre de 2011

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);
}
//---------------------------------------------------------------------------

No hay comentarios:

Publicar un comentario