Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа 33 / part32 / TriangleEntity
.cpp/********************************************************************************/
#include "stdafx.h"
#include "TriangleEntity.h"
#include <iostream>
/********************************************************************************/
CTriangleEntity::CTriangleEntity( const int iB, const int iH,
const int iX, const int iY )
:CPointEntity( iX,iY )
{
setBase( iB );
setHeight( iH );
}
/********************************************************************************/
CTriangleEntity::~CTriangleEntity()
{
}
/********************************************************************************/
int CTriangleEntity::getBase() const
{
return mBase;
}
/********************************************************************************/
int CTriangleEntity::getHeight() const
{
return mHeight;
}
/********************************************************************************/
void CTriangleEntity::setBase( int iB )
{
mBase = iB;
}
/********************************************************************************/
void CTriangleEntity::setHeight( int iH )
{
mHeight = iH;
}
/********************************************************************************/
void CTriangleEntity::Printfig(std::ostream& os)
{
os << "Triangle:" <<std::endl;
os << " X=" << mX<<std::endl;
os << " Y=" << mY<<std::endl;
os << " B=" << mBase<<std::endl;
os << " H=" << mHeight<<std::endl;
}
int CTriangleEntity::getNumType()
{ return 1;
}
/********************************************************************************/
void CTriangleEntity::Draw(CDC* pDC, Shape* figure)
{
CPen aPen;
COLORREF aColor=RGB(0,0,0);
if(this == figure)
aColor = RGB(255,0,0);
if(!aPen.CreatePen(PS_SOLID, 1, aColor))
{
AfxMessageBox("Pen creation failed drawing a rectangle", MB_OK);
AfxAbort();
}
CPen* pOldPen = pDC->SelectObject(&aPen);
CPoint Start(getX(),getY()+getHeight());
CPoint End(getX()+getBase()/2,getY());
pDC->MoveTo(Start);
pDC->LineTo(End);
Start=End;
End.x=getX()+getBase();
End.y=getY()+getHeight();
pDC->MoveTo(Start);
pDC->LineTo(End);
Start=End;
End.x=getX();
End.y=getY()+getHeight();
pDC->MoveTo(Start);
pDC->LineTo(End);
pDC->SelectObject(pOldPen);
}
CRect CTriangleEntity::GetBoundRect()
{ CRect BoundingRect(getX(),getY(),getX()+getBase(),getY()+getHeight()+2);
return BoundingRect;
}
void CTriangleEntity::writeAr(CArchive& ar)
{ar<<getNumType();
ar<<getX();
ar<<getY();
ar<<getBase();
ar<<getHeight();
}
void CTriangleEntity::readAr(CArchive& ar)
{int _X,_Y;
ar>>_X;
ar>>_Y;
ar>>mBase;
ar>>mHeight;
setX(_X);setY(_Y);
}
CString CTriangleEntity::getName()
{return "Triangle";}
Соседние файлы в папке part32