Archived

This topic is now archived and is closed to further replies.

help

This topic is 5701 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

i was beginning a shape class which contains point,rectangle,triangle,circle and line.the program can draw and resize.i have start a little but i don''t want tto write after this class shape { public: Draw(); Resize(); class point { public: point(int,int) then i don''t know how to continue can anyone help me

Share this post


Link to post
Share on other sites
You probably want to store a color in there too?


  
class Shape_C
{
public:
short Top, Left, Height, Width;
unsigned char Red, Green, Blue;
public:
virtual void Draw(void){};//Does nothing if we don''t have a

fucntion for it in our derived classes!
void Resize(short top, short left, short height, short width);
void SetColor(unsigned char r, unsigned char g, unsigned char b);
};

/*
Use =0 for width/height so when we call Point.Resize() we need only supply x,y locations, and not width/height (unless you want a width and height for a point, then you can still use it).
*/

void Shape_C::Resize(short left, short top, short width=0, short height=0)
{
Top=top;
Left=left;
Width=width;
Height=height;
}

class Point_C : Shape_C
{
public:
void Draw(void);
};

void Point_C::Draw(void)
{
//Draw code for point drawing!

PutPoint(Left,Top,Red,Green,Blue);
}

class Rectangle_C : Shape_C
{
public:
void Draw(void);
}

void Rectangle_C::Draw(void)
{
//Rectangle drawing code here!

PutRectangle(Left,Top,Width,Height,Red,Green,Blue);
}


Something like that is what I''d do I guess...

Billy - BillyB@mrsnj.com
(Hey, I''''m no longer anonymous!)

Share this post


Link to post
Share on other sites
You should probably be in the Beginner''s forum with this question. Can you describe a bit more about your problem? I can see you''ve made a start, but you haven''t said exactly what it is you''re stuck with. I''m assuming that you are talking about C++. Have you thought about what you want your classes to do? Is it that you don''t know how to write a class? If so, do you have a C++ tutorial guide? You might find Thinking in C++ to be helpful.


[ C++ FAQ Lite | ACCU | Boost | Python | Agile Manifesto! ]

Share this post


Link to post
Share on other sites
It all depends on what you're using these shapes for (post and I'm sure people can come up with a ton of suggestions).
Some general functions might be:

int IsPointInside(int x, int y)
single Area()
void Translate(int deltaX, int deltaY)//Translate means move
void Rotate(single angle)

If its part of a game engine you might also want some things like:

int IsCollision(CShape aShape)
rect BoundingBox()




[edited by - Michalson on May 3, 2002 10:42:47 AM]

Share this post


Link to post
Share on other sites
Try this...


class Shape
{
public:
// Virtual Destructor ensures proper handling
// of destruction
virtual ~Shape();

// Virtual NULL Functions force sub-classes
// to implement these.
virtual void Draw( ... ) = 0;
virtual void Resize( ... ) = 0;
};

class Point : public Shape
{
public:
// Constructor and destructor
Point();
~Point();

// Actual implementation of functions
virtual void Draw( ... );
virtual void Resize( ... );
};

class Triangle : public Shape
{
public:
Triangle();
~Triangle();

// Actual implementation of functions
virtual void Draw( ... );
virtual void Resize( ... );
};

// Etcetera...



Any other questions?

PropellerBoy


Share this post


Link to post
Share on other sites
hi thx u guy,teaching how to write a class.by the way do u have any reference site which teach u how to build a class.becoz i have learn C languange last year,but i didn''t do good on it,especially coding part.i would like to improve it.can anyone tell me any tutorial site for me to have a look at c++ programming or evening sample of the script.

Share this post


Link to post
Share on other sites
hi i have got sth finished,but i don''t know if i''m right?can any one tell me where have problem.and where to correct it.
class shape
{
public:
vitrual void draw()=0;
virtual void resize()=0;
virtual~shape();
};
class pointublic shape
{
public:
Point(int x,int y);
virtual void setpoint(int);
virtual void getpoint()const;
virtual void draw();
virtual void resize();
virtual~point();
private:
int x,y;
}
class lineublic shape
{
public:
line(int l,int x, int y);
virtual setlength(int);
virtual getlength()const;
virtual void draw();
virtual void desize();
virtual~line();
private:
int length;
}
class circleublic shape
{
public:
circle(int r,int x, int y);
virtual void setradius(int);
virtual void getradius()const;
virtual void draw();
virtual void resize();
virtual~circle();
private:
int radius;
}
class triangleublic shape
{
public:
triangle(int a,int x,int y);
virtual void setangle(int);
virtual void getangle()const;
virtual void draw();
virtual void resize();
virtual~triangle();
private:
int angle;
}
class rectangleublic shape
{
public:
rectangle( int l, int x, int y);
virtual void setlength(int);
virtual void setheight(int);
virtual void getlength()const;
virtual void getheight()const;
virtual void draw();
virtual void resize();
virtual~rectangle();
private:
int length,height;
}
class squareublic shape
{
public:
square(int l, int h, intx ,int y);
virtual void setlength(int);
virtual void setheight(int);
virtual void getlength()const;
virtual void getheight()const;
virtual void draw();
virtual void resize();
virtual ~square();
private:
int length,height;
}

Share this post


Link to post
Share on other sites