terça-feira, 7 de janeiro de 2014

CG....Simulador

Simulador CG...

Operações suportadas: Rotação...Escala, Transalação, Flip...Com suporte a histórico.


public void Flip()
{
if(checkMantemHistorico.Checked)
{
this.listComandos.Items.Add("CMDFLIP");
}
else
{
this.paint.Flip = this.paint.Flip * -1;
this.Atualiza();
}

}
public void Translacao(float origemX, float origemY)
{
if(checkMantemHistorico.Checked)
{

this.listComandos.Items.Add("CMDTRANSLACAO,"+origemX.ToString()+";"+origemY.ToString());
}
else
{
this.paint.OrigemX+=origemX;
this.paint.OrigemY+=origemY;
this.Atualiza();
}

}
public void Escala(float valor)
{
if(checkMantemHistorico.Checked)
{

this.listComandos.Items.Add("CMDESCALA,"+valor.ToString());
}
else
{
paint.Escala(valor);
this.Atualiza();
}

}
private void AplicarHistorico()
{
string item = string.Empty ;
string [] cmd = null;

for(int i=0;i {
item = Convert.ToString(this.listComandos.Items[i]);
cmd = item.Split(",".ToCharArray());



if(Convert.ToString(cmd[0]).Equals("CMDROTACAO"))
{
float angulo = 0;
angulo = (float)Convert.ToDouble(cmd[1]);
paint.Rotacao(angulo);

this.Atualiza();
}
if(Convert.ToString(cmd[0]).Equals("CMDFLIP"))
{
this.paint.Flip = this.paint.Flip * -1;
this.Atualiza();
}
else if(Convert.ToString(cmd[0]).Equals("CMDTRANSLACAO"))
{
float origemX = 0, origemY=0;

string [] cmd2 =Convert.ToString(cmd[1]).Split(";".ToCharArray());

origemX = (float)Convert.ToDouble(cmd2[0]);
origemY = (float)Convert.ToDouble(cmd2[1]);

paint.OrigemX+=origemX;
paint.OrigemY+=origemY;
this.Atualiza();
}
else if(Convert.ToString(cmd[0]).Equals("CMDROTACAO"))
{
float angulo = 0;
angulo = (float)Convert.ToDouble(cmd[1]);
paint.Rotacao(angulo);

this.Atualiza();
}
else if(Convert.ToString(cmd[0]).Equals("CMDCISALHAMENTO"))
{
float angulo = 0;
angulo = (float)Convert.ToDouble(cmd[1]);
paint.Cisalhamento(angulo);

this.Atualiza();
}
else if(Convert.ToString(cmd[0]).Equals("CMDESCALA"))
{
float angulo = 0;
angulo = (float)Convert.ToDouble(cmd[1]);
paint.Escala(angulo);

this.Atualiza();
}
else
{
throw new Exception("Comando não encontrado: "+cmd[0]);
}

}
this.listComandos.Items.Clear();
//this.picture.Image=paint.Draw();
}

#endregion

private void statusBar_PanelClick(object sender, System.Windows.Forms.StatusBarPanelClickEventArgs e)
{

}

private void checkMantemHistorico_CheckedChanged(object sender, System.EventArgs e)
{
if(this.listComandos.Items.Count>0 && this.checkMantemHistorico.Checked==false)
{

DialogResult result;
string message = "Existe transformações pendentes para serem aplicadas, deseja descartá-las?";
string caption = "Operações Pendentes";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;


result = MessageBox.Show(this, message, caption, buttons,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1,
MessageBoxOptions.RightAlign);

if(result == DialogResult.Yes)
{
this.listComandos.Items.Clear();

}
else
{
this.checkMantemHistorico.Checked=true;
}


}
}


Postar um comentário