Witam, mam problem z obracaniem figur utworzonej z tekstu. Mianowicie wyrysowuje 3 romby i chciałbym aby się obracały. Wyrysowywanie działa dobrze, ale gdy próbuję obrócić wszystko cóż..się wali.
class romb
{
private punkt p_up { get; set; } // gora
private punkt p_left { get; set; } // lewo
private punkt p_right { get; set; } // prawo
private punkt p_down { get; set; } // dol
private punkt firstup { get; set; }
public romb(punkt up, punkt left, punkt right, punkt down)
{
this.p_up = (punkt)up.Clone();
this.p_left = (punkt)left.Clone();
this.p_right = (punkt)right.Clone();
this.p_down = (punkt)down.Clone();
this.firstup = (punkt)up.Clone();
}
public void Draw()
{
drawfromlefttodown();
drawfromlefttoup();
drawfromrighttodown();
drawfromrighttoup();
}
private void MoveOneFrame()
{
this.p_up = new punkt((p_up.Get_x()+1),(p_up.Get_y()+1));
this.p_down = new punkt((p_down.Get_x()-1), (p_down.Get_y() - 1));
this.p_left = new punkt((p_left.Get_x()+1),(p_left.Get_y()-1));
this.p_right = new punkt((p_right.Get_x()-1),(p_right.Get_y()+1));
}
private void drawfromlefttoup()
{
int cursorx = p_left.Get_x();
int cursory = p_left.Get_y();
Console.SetCursorPosition(cursorx, cursory);
while(cursorx != p_up.Get_x())
{
Console.Write("+");
cursorx++;
cursory--;
Console.SetCursorPosition(cursorx, cursory);
}
while(cursory > p_up.Get_y())
{
Console.Write("+");
cursory--;
Console.SetCursorPosition(cursorx, cursory);
}
}
private void drawfromlefttodown()
{
int cursorx = p_left.Get_x();
int cursory = p_left.Get_y();
Console.SetCursorPosition(cursorx, cursory);
while (cursorx != p_down.Get_x())
{
Console.Write("+");
cursorx++;
cursory++;
Console.SetCursorPosition(cursorx, cursory);
}
while (cursory < p_down.Get_y())
{
Console.Write("+");
cursory++;
Console.SetCursorPosition(cursorx, cursory);
}
}
private void drawfromrighttoup()
{
int cursorx = p_right.Get_x();
int cursory = p_right.Get_y();
Console.SetCursorPosition(cursorx, cursory);
while (cursorx != p_up.Get_x()-1)
{
Console.Write("+");
cursorx--;
cursory--;
Console.SetCursorPosition(cursorx, cursory);
}
while (cursory > p_up.Get_y())
{
Console.Write("+");
cursory--;
Console.SetCursorPosition(cursorx, cursory);
}
}
private void drawfromrighttodown()
{
int cursorx = p_right.Get_x();
int cursory = p_right.Get_y();
Console.SetCursorPosition(cursorx,cursory);
while(cursorx != p_up.Get_x()-1)
{
Console.Write("+");
cursorx--;
cursory++;
Console.SetCursorPosition(cursorx, cursory);
}
while(cursory < p_up.Get_y())
{
Console.Write("+");
cursory++;
Console.SetCursorPosition(cursorx, cursory);
}
}
}