witam potrzebuje pomocy jak poprawnie zrobić klasę romb
ogólnie chodzi o to żeby dziedzicząc z klasy figura i pewnie prostokąt stworzyć figurę romb
pozdrawiam Marcin
// UserCode
// w tym pliku umieść swój kod
#include "Ekran.h"
#include "Figura.h"
#include "ListaFigur.h"
#include <math.h>
/* klasa EKRAN posiada następującą funkcjonalność:
void UstawPoz( int x, int y ); // ustawia bieżąca pozycję pędzla
void LiniaDo( int x, int y ); // rysuje linię z bieżącej pozycji pędzla do wskazanej pozycji
void RysujElipse( int left, int top, int right, int bottom ); // rysuje elipsę wpisaną w prostokąt o podanych współrzędnych
void UstawSzerokoscPedzla( int pikseli ); // ustawia szerokość pędzla (w pikselach)
void UstawKolorPedzla( int R, int G, int B ); // ustawia kolor pędzla
void UstawKolorPedzla( Koror& kolor ); // ustawia kolor pędzla
*/
class Prostokat : public Figura {
protected:
int cx, cy; // szer i wys.
public:
Prostokat(int x=0, int y=0, int szer=0, int wys=0, Kolor& kolor) : Figura(x,y,kolor) {
cx = szer; cy = wys;
};
virtual void Rysuj( Ekran& ekran ) {
ekran.UstawKolorPedzla( this->kolor );
ekran.UstawPoz( x, y );
ekran.LiniaDo( x+cx, y );
ekran.LiniaDo( x+cx, y+cy );
ekran.LiniaDo( x, y+cy );
ekran.LiniaDo( x, y );
};
virtual bool CzyToJa( int pozX, int pozY ) {
return x <= pozX && pozX <= x + cx && y <= pozY && pozY <= y + cy;
};
virtual void Obroc() {
int tmp = cx;
cx = cy;
cy = tmp;
};
};
class Kolo : public Figura {
private :
int promien;
public:
Kolo (int nX, int nY, int nP, Kolor& kolor) : Figura(nX,nY,kolor) {
promien = nP;
};
virtual void Rysuj( Ekran& ekran ) {
ekran.RysujElipse(x-promien, y-promien,x+promien,y+promien);
ekran.UstawKolorPedzla( this->kolor );
ekran.UstawPoz( x, y );
};
virtual bool CzyToJa(int x, int y) {};
};
class Romb : public Figura {
protected:
int cx, cy; // szer i wys.
public:
Romb(int x=0, int y=0, int szer=0, int wys=0, Kolor& kolor) : Figura(x,y,kolor) {
cx = szer; cy = wys;
};
virtual void Rysuj( Ekran& ekran ) {
ekran.UstawKolorPedzla( this->kolor );
ekran.UstawPoz( x, y);
ekran.LiniaDo( x+cx, y);
ekran.LiniaDo( x+cx, y+cy);
ekran.LiniaDo( x, y+cy);
ekran.LiniaDo( x, y);
};
virtual bool CzyToJa( int pozX, int pozY ) {
return x <= pozX && pozX <= x + cx && y <= pozY && pozY <= y + cy;
};
virtual void Obroc() {
int tmp = cx;
cx = cy;
cy = tmp;
};
};
void Ekran::Inicjalizacja() {
Kolor red(255,0,0), green(0,255,0), blue(0,0,255), yellow(255,255,0); // kolory podstawowe
//DodajFigure( new Kolo( 10, 10, 100, blue ) );
DodajFigure( new Prostokat( 10, 10, 100, 100, blue ) );
DodajFigure( new Romb( 50, 50, 100, 100, blue ) );
};