资源简介
读取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网络编程服务端和客户端的通讯
- VS2010中MFC利用TeeChart控件实现画三维图
- 宾馆管理系统(C++MFC)数据库课程设
- vc会员积分管理(MFC数据库练手,开源
- C++可视化MFC课设_五子棋带报告
- 基于MFC设计,学生成绩管理系统,课
- 二叉树 VC6.0 MFC实现 数据结构
- MFC_跑酷游戏小Demo
- VS2010基于对话框的MFC 工具栏和状态栏
- MFC bluetooth
- MFC浏览器内嵌IE
- MFC课程设计 学生信息管理系统C++
- C++检测托盘图标和枚举进程2免费
- MFC程序100例.zip
- 字符串\“撞墙反弹\“效果
- 用MFC实现的图像处理源代码总集
- acr122udriver+mfcuk M1卡破解工具
- 学生宿舍后勤管理系统——MFC、C++
- MFC校园导航图 可视化校园地图
- MFC编写的记事本
- C++写的网络共享白板
- 自己做的打地鼠小游戏
- 基于TCP/IP socket的局域网聊天系统
- MFC黄金矿工小游戏
- 迷宫益智游戏,c++mfc编写,亲测有效
- C++课程设计计算器MFC
- 运动会成绩管理系统 mfc+ sql2000
- mfc图书管理系统236562
- vc-基于MFC编程,使用TCP/IP模型编写
- MFC中使用OpenCV显示选定文件夹中所有
评论
共有 条评论