Klasa rysowanie kwadratu

0

Witam potrzebuję pomocy w napisaniu metody rysowania kwadratu. Klasa wygląda następująco:

 
class Kwadrat
{
    public int x;
    public int y;
    public int szerokosc;
    public int wysokosc;
    public Kwadrat(int x, int y, int szerokosc, int wysokosc)
    {
        this.x=x;
        this.y=y;
        this.szerokosc=szerokosc;
        this.wysokosc=wysokosc;
    }

    void rysuj()
   {

    }

}

Zatrzymuje się na metodzie. Kompletnie nie wiem jak się za to zabrać. Czy ktoś jest w stanie pomóc? Z góry dziękuję :D

0

A w czym to rysujesz :D? w .net ?

0

c#

0

No to chłopie... pierwsze pytanie... słyszałeś o bibliotece System.Drawing :) ?

0

hmm tak słyszałem... tylko pisząc metodę w klasie jakoś mi to nie śmiga, natomiast gdy dodaje paintevent z poziomu forma w visual to wszystko śmiga

0

Kwadrat (najlepiej poprzez publiczny interfejs) powinien udostępniać metodę umożliwiającą rysowanie.

public interface IDrawable
{
void Draw();
}

public Class Kwadrat : IDrawable
{
...
public void Draw()
{
...
}
}

No i dalej zależy od tego jak ty to rozumiesz / chcesz zrobić. Korzystasz z gotowych algorytmów na rysowanie? Jeśli tak to wystarczy że w jakiś sposób przekażesz np. obiekt Graphics do metody Draw i będziesz w stanie na nim wywołać metodę "DrawRectangle". Najłatwiej przekazać go jako parametr funkcji.

0

Może spróbuj utworzyć instancję klasy Kwadrat np gdy klikasz jakiegoś buttona...

void button_Click (object sender, EventArgs e)
{
  Kwadrat mojKwadrat = new Kwadrat();
  mojKwadrat.Rysuj(5);
 
}
0

Oki. Czyli powinienem w main stworzyć obiekt Graphics i przez parametr przekazywać go do funkcji tak?

	

public interface IDrawable
{
     void Draw();
}

public Class Kwadrat : IDrawable
{
...
     public void Draw(Graphics a)
     {
          a.DrawRectangle(x,y,szerokosc,wysokosc);
     }
}

W main:

 
Graphics g = this.CreateGraphics(); 
Kwadrat k= new Kwadrat(10,10,10,10)
k.Drawj(g);

Tak to powinno wyglądać?

0

winform

0

To po co chcesz w metodzie Main robić rysowanie :) ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1