📄 plinergn.cpp
字号:
// PlineRgn.cpp: implementation of the CPlineRgn class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Voronoi.h"
#include "Pline.h"
#include "PlineRgn.h"
#include "VoronoiDoc.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CGraphPara *p_GraphPara;
extern void RPtoLP(double x,double y,int *X,int *Y);
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CPlineRgn::CPlineRgn()
{
m_Number=0;
}
CPlineRgn::~CPlineRgn()
{
}
void CPlineRgn::Draw(CDC *pDC,int m_DrawMode,int m_DrawModel,short BackColor,int id)
{
if(b_Delete)
return;
short LineType=0;
short ColorPen=m_ColorPen;
if(m_DrawMode==0)
pDC->SetROP2(R2_COPYPEN);
else if(m_DrawMode==1)
pDC->SetROP2(R2_NOT);
short lt=0;
if(m_DrawModel==1)
{
LineType=-1;
lt=2;
}
else if(m_DrawModel==2)
ColorPen=BackColor;
short Numb=m_Number;
m_PointList[Numb++]=m_PointList[0];
POINT* ppoint=new POINT[Numb*4+1];
CRgn rgn;
for(int i=0;i<Numb;i++)
{
int X1,Y1;
RPtoLP(m_PointList[i].x,m_PointList[i].y,&X1,&Y1);
ppoint[i].x=X1;
ppoint[i].y=Y1;
}
CPen pen(lt,1,p_GraphPara->GetColor(ColorPen));
CPen* pOldPen=pDC->SelectObject(&pen);
for(i=0;i<Numb-1;i++)
{
pDC->MoveTo(ppoint[i]);
pDC->LineTo(ppoint[i+1]);
}
if(m_DrawModel==0||m_DrawModel==2)
{
if(m_bFill)
{
long lColor=p_GraphPara->GetColor(m_ColorBrush);
if(m_DrawModel==2)
lColor=p_GraphPara->GetColor(BackColor);
CBrush brush(lColor);
CBrush* pOldBrush=pDC->SelectObject(&brush);
if(this->m_bTransparent)
pDC->SetROP2(R2_NOP);
else
pDC->SetROP2(R2_COPYPEN);
pDC->Polygon(ppoint,Numb);
pDC->SelectObject(pOldBrush);
pDC->SetROP2(R2_COPYPEN);
}
}
else if(m_DrawModel==1)
{
rgn.CreatePolygonRgn(ppoint,Numb,1);
pDC->InvertRgn(&rgn);
}
pDC->SelectObject(pOldPen);
delete ppoint;
}
PointStruct* CPlineRgn::GetPointList()
{
return m_PointList;
}
int CPlineRgn::GetPointNumber()
{
return m_Number;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -