a classe funcoes.cs é referente ao funcionamento base do programa é ele que chamará classes como fotografia.cs, ou servo.cs, etc
using System;
using System.Text;
namespace fotografia
{
internal class Funcoes
{
private StringBuilder txt = new StringBuilder();
private void _MovimentoX(double _valorX)
{
txt.AppendLine("X - Movendo servo em x = " + _valorX.ToString());
}
private void _MovimentoY(double _valorY)
{
txt.AppendLine("Y - Movendo servo em y = " + _valorY.ToString());
}
public double[] PosicaoInicialXY { get; set; }
public double[] PosicaoFinallXY { get; set; }
public string StartPanorama(IFotografia _ft)
{
//calcular diferença entre XY inicial e XY final
double[] _DifXY = this.DifXY;
txt.AppendLine("OBS: Diferença XY é.: " + _DifXY[0].ToString() + "," + _DifXY[1].ToString());
//calcular quantos movimentos tem de X de acordo com CalculoAnguloVisaoH()
//com o convert.toInt ele arredonda pq não existe meio movimento.
int _QtdMovimentosX = Math.Abs(Convert.ToInt32(_DifXY[0] / _ft.CalculoAnguloVisaoH()));
//calcular quantos movimentos tem de Y de acordo com CalculoAnguloVisaoV()
int _QtdMovimentosY = Math.Abs(Convert.ToInt32(_DifXY[1] / _ft.CalculoAnguloVisaoV()));
txt.AppendLine(" Será necessário " + _QtdMovimentosX + " movimentos em X");
txt.AppendLine(" Será necessário " + _QtdMovimentosY + " movimentos em Y");
double _AnguloVisaoH = _ft.CalculoAnguloVisaoH();
double _AnguloVisaoV = _ft.CalculoAnguloVisaoV();
//movendo XY
for (int iY = 0; iY < _QtdMovimentosY; iY++)
{
for (int iX = 0; iX < _QtdMovimentosX; iX++)//movimentos X
{
_ft.TirarFoto();
txt.AppendLine("=> Tirando foto..Click");
this._MovimentoX(_AnguloVisaoH); //movendo X
if (iX == _QtdMovimentosX -1)
{//já rodou tudo na horizontal
txt.AppendLine("### Resetando posição X inicial e mudando para linha Y");
this._MovimentoX(this.PosicaoInicialXY[0]);
}
}
if (iY == _QtdMovimentosY - 1)
{//já deu quantidade de Y exit
break;
}
this._MovimentoY(_AnguloVisaoV);
}
return txt.ToString();
}
private double[] DifXY
{
get
{
return new[] {
this.PosicaoFinallXY[0] - this.PosicaoInicialXY[0],
this.PosicaoFinallXY[1] - this.PosicaoInicialXY[1],
};
}
}
}
}
Nenhum comentário:
Postar um comentário