资源简介

读取dxf文件,并对entities部分解析,调用mfc二维画图,包括缩放。

资源截图

代码片段和文件信息

#pragma once
#include “stdafx.h“
#include “CDxfCodeDll.h“
#include “math.h“

IMPLEMENT_SERIAL(CArc CEntity 0)
CArc::CArc()
{
Init();
}
CArc::~CArc()
{

}
void CArc::Init()
{
CEntity::Init();
m_type = etArc;
m_center.Init();
m_begin.Init() ;
m_end.Init() ;
m_fStartAngle = 0.0;
m_fEndAngle = 0.0;
m_iDirection = CLOCKWISE;
}

CArc::CArc(const CArc& arc)
{
m_center = arc.m_center;
m_begin  = arc.m_begin ;
m_end    = arc.m_end ;
m_iDirection = CLOCKWISE;
}
CArc::CArc(const Position& centerdouble startAngledouble endAngledouble  Radium)
{
Init();
m_center = center;
m_fStartAngle = startAngle;
m_fEndAngle = endAngle;
m_dRadius = Radium;


if (startAngle>endAngle)//////判断是顺时针还是逆时针;
{
m_iDirection = COUNTERCLOCKWISE;
}
else
{
m_iDirection = CLOCKWISE;
}

double startAnglePIendAnglePI;
startAnglePI = m_fStartAngle*PI/180.0;
endAnglePI = m_fEndAngle*PI/180.0;

m_begin.x = m_dRadius*cos(startAnglePI)+m_center.x;
m_begin.y = m_dRadius*sin(startAnglePI)+m_center.y;

m_end.x = m_dRadius*cos(endAnglePI)+m_center.x;
m_end.y = m_dRadius*sin(endAnglePI)+m_center.y;

///////求起点的坐标和终点的坐标
//double x1y1kStartkEndstartAnglePIendAnglePIDelta;
//Position temPosStart1temPosStart2temPosEnd1temPosEnd2temPos;
//x1 = m_center.x;
//y1 = m_center.y;

//startAnglePI = m_fStartAngle*PI/180.0;
//endAnglePI = m_fEndAngle*PI/180.0;
//kStart = tan(startAnglePI);
//kEnd   = tan(endAnglePI);

//////temPosStart1.x>temPosStart2.x 
//Delta = (2*x1+2*kStart*y1)*(2*x1+2*kStart*y1)-4*(1+kStart*kStart)*(x1*x1+y1*y1-m_dRadius*m_dRadius);
//temPosStart1.x = (2*x1+2*kStart*y1+sqrt(Delta))/(2+2*kStart*kStart);
//temPosStart1.y = temPosStart1.x*kStart;

//temPosStart2.x = (2*x1+2*kStart*y1-sqrt(Delta))/(2+2*kStart*kStart);
//temPosStart2.y = temPosStart1.x*kStart;

///////temPosEnd1.x>temPosEnd2.x
//Delta = (2*x1+2*kEnd*y1)*(2*x1+2*kEnd*y1)-4*(1+kEnd*kEnd)*(x1*x1+y1*y1-m_dRadius*m_dRadius);
//temPosEnd1.x = (2*x1+2*kEnd*y1+sqrt(Delta))/(2+2*kEnd*kEnd);
//temPosEnd1.y = temPosEnd1.x*kEnd;

//temPosEnd2.x = (2*x1+2*kEnd*y1-sqrt(Delta))/(2+2*kEnd*kEnd);
//temPosEnd2.y = temPosEnd2.x*kEnd;
}

CArc::CArc(const Position& centerconst Position& pos1 const Position& pos2)
{
Init();
m_center = center ;
m_begin = pos1 ;
double  radius = m_center.Distance(m_begin) ;

double angle1 = GetAngleToXAxis(center pos1);
double  angle2 = GetAngleToXAxis(center pos2);

m_begin = pos1;
m_end.x = radius * cos(angle2) + m_center.x ;
m_end.y = radius * sin(angle2) + m_center.y ;

}

Position CArc::GetEndPos()
{
return m_end;
}

Position CArc::GetBeginPos()
{
return m_begin;
}

Position CArc::GetCenterPos()
{
return m_center ;
}

void CArc::SetBeginPos(Position p)
{
m_begin.x=p.x;
m_begin.y=p.y;
}

void  CArc::SetEndPos(Position p)
{
m_end.x=p.x;
m_end.y=p.y;
}

void CArc::SetCenterPos(Position p)
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-10-12 10:27  CDxfCode_MFC\
     目录           0  2016-10-12 10:26  CDxfCode_MFC\CDxfCode\
     目录           0  2016-10-12 10:26  CDxfCode_MFC\CDxfCode\CDxfCode\
     文件        1345  2016-08-18 09:56  CDxfCode_MFC\CDxfCode\CDxfCode.sln
     文件       34304  2016-10-08 17:38  CDxfCode_MFC\CDxfCode\CDxfCode.suo
     文件        4833  2016-10-10 12:42  CDxfCode_MFC\CDxfCode\CDxfCode\CArc.cpp
     文件        1882  2016-10-10 13:57  CDxfCode_MFC\CDxfCode\CDxfCode\CCircle.cpp
     文件       19396  2016-10-09 15:42  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.aps
     文件        1129  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.cpp
     文件          88  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.def
     文件         407  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.h
     文件        6182  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.rc
     文件        6105  2016-08-18 15:55  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.vcxproj
     文件        2622  2016-08-18 15:01  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.vcxproj.filters
     文件         143  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCode.vcxproj.user
     文件        2471  2016-08-18 17:18  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCodeDll.cpp
     文件        7439  2016-10-10 12:16  CDxfCode_MFC\CDxfCode\CDxfCode\CDxfCodeDll.h
     文件         916  2016-08-18 17:52  CDxfCode_MFC\CDxfCode\CDxfCode\CEntity.cpp
     文件        1765  2016-09-28 16:46  CDxfCode_MFC\CDxfCode\CDxfCode\CLine.cpp
     文件          40  2016-08-18 14:35  CDxfCode_MFC\CDxfCode\CDxfCode\CPosition.cpp
     文件        2155  2016-09-28 16:46  CDxfCode_MFC\CDxfCode\CDxfCode\CRectangle.cpp
     目录           0  2016-10-12 10:28  CDxfCode_MFC\CDxfCode\CDxfCode\Debug\
     文件        2488  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\ReadMe.txt
     目录           0  2016-10-12 10:26  CDxfCode_MFC\CDxfCode\CDxfCode\res\
     文件         364  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\Resource.h
     文件         672  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\res\CDxfCode.rc2
     文件         139  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\stdafx.cpp
     文件        1131  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\stdafx.h
     文件         236  2016-08-18 09:22  CDxfCode_MFC\CDxfCode\CDxfCode\targetver.h
     目录           0  2016-10-12 10:26  CDxfCode_MFC\CDxfCode\ipch\
     目录           0  2016-10-08 11:02  CDxfCode_MFC\CDxfCode\ipch\draw-a3396146\
............此处省略47个文件信息

评论

共有 条评论