资源简介
读取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个文件信息
- 上一篇:MFC网络编程服务端和客户端的通讯
- 下一篇:vc6.0+opengl动态绘制五角星
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
- mfc+sql 酒店客房管理系统
- 基于图割的图像分割OpenCV+MFC实现
- MFC绘制Bezier曲线B样条曲线曲线拟合
评论
共有 条评论