VC 画坐标 方法2
来源:互联网 发布:linux telnet登陆root 编辑:程序博客网 时间:2024/05/21 15:01
//////////////////////////////////////////////////////////////////////////
//*******画坐标图*******
//////////////////////////////////////////////////////////////////////////
CRect rect(250,300,600,600);
// GetClientRect(&rect);
int nxLength=rect.Width();
int nyLength=rect.Height();
int nxDivisionNumber = 7;
int nyDivisionNumber = 6;
int nMeshLength;
CString str;
int i;
CDC* pDC = this->GetDC();
// pDC->Rectangle(0,0,nxLength,nyLength);
CPen* pPenRed = new CPen; //创建画笔对象
pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0)); //红色画笔
CPen* pPenGreen = new CPen; //创建画笔对象
pPenGreen->CreatePen(PS_SOLID, 1, RGB(0,255,0));//绿色画笔
CPen* pPenBlue = new CPen; //创建画笔对象
pPenBlue->CreatePen(PS_DOT, 1, RGB(0,0,255)); //蓝色画笔
CPen* pPenBlack = new CPen; //创建画笔对象
pPenBlack->CreatePen(PS_SOLID, 1, RGB(0,0,0)); //黑色画笔
//选中黑色画笔,并保存当前画笔
CGdiObject* pOldPen = pDC->SelectObject(pPenBlack);
pDC->MoveTo(rect.left,rect.top); //绘制坐标轴
pDC->LineTo(rect.left,rect.bottom); //垂直轴
pDC->LineTo(rect.right,rect.bottom); //水平轴
//横坐标箭头
pDC->MoveTo(rect.right,rect.bottom);
pDC->LineTo(rect.right-10,rect.bottom-3);
pDC->LineTo(rect.right-10,rect.bottom+3);
pDC->LineTo(rect.right,rect.bottom);
//纵坐标箭头
pDC->MoveTo(rect.left ,rect.top);
pDC->LineTo(rect.left-3,rect.top+10);
pDC->LineTo(rect.left+3,rect.top+10);
pDC->LineTo(rect.left ,rect.top);
pDC->SetBkMode(TRANSPARENT); //设置背景透明
//横坐标数字
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+1; i++){
str.Format("%d",i);
pDC->TextOut(rect.left-5+i*nMeshLength, rect.bottom+5, str);
}
//横坐标标识
str.Format("数据序列");
pDC->TextOut(rect.left-5+i*nMeshLength,rect.bottom+5,str);
//纵坐标数字
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=0; i<nyDivisionNumber+1; i++){
str.Format("%1.1f",(float)(i*0.5));
pDC->TextOut(rect.left-30, rect.bottom-i*nMeshLength, str);
}
//纵坐标标识
str.Format("电压(V)");
pDC->TextOut(rect.left+10,rect.top-15,str);
//网格线
pDC->SelectObject(pPenBlue);
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+2; i++){
pDC->MoveTo(rect.left+i*nMeshLength,rect.bottom);
pDC->LineTo(rect.left+i*nMeshLength,rect.top);
}
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=1; i<nyDivisionNumber+2; i++){
pDC->MoveTo(rect.left , rect.bottom-i*nMeshLength);
pDC->LineTo(rect.right, rect.bottom-i*nMeshLength);
}
//恢复以前的画笔
pDC->SelectObject(pOldPen);
delete pPenRed;
delete pPenGreen;
delete pPenBlue;
delete pPenBlack;
//*******画坐标图*******
//////////////////////////////////////////////////////////////////////////
CRect rect(250,300,600,600);
// GetClientRect(&rect);
int nxLength=rect.Width();
int nyLength=rect.Height();
int nxDivisionNumber = 7;
int nyDivisionNumber = 6;
int nMeshLength;
CString str;
int i;
CDC* pDC = this->GetDC();
// pDC->Rectangle(0,0,nxLength,nyLength);
CPen* pPenRed = new CPen; //创建画笔对象
pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0)); //红色画笔
CPen* pPenGreen = new CPen; //创建画笔对象
pPenGreen->CreatePen(PS_SOLID, 1, RGB(0,255,0));//绿色画笔
CPen* pPenBlue = new CPen; //创建画笔对象
pPenBlue->CreatePen(PS_DOT, 1, RGB(0,0,255)); //蓝色画笔
CPen* pPenBlack = new CPen; //创建画笔对象
pPenBlack->CreatePen(PS_SOLID, 1, RGB(0,0,0)); //黑色画笔
//选中黑色画笔,并保存当前画笔
CGdiObject* pOldPen = pDC->SelectObject(pPenBlack);
pDC->MoveTo(rect.left,rect.top); //绘制坐标轴
pDC->LineTo(rect.left,rect.bottom); //垂直轴
pDC->LineTo(rect.right,rect.bottom); //水平轴
//横坐标箭头
pDC->MoveTo(rect.right,rect.bottom);
pDC->LineTo(rect.right-10,rect.bottom-3);
pDC->LineTo(rect.right-10,rect.bottom+3);
pDC->LineTo(rect.right,rect.bottom);
//纵坐标箭头
pDC->MoveTo(rect.left ,rect.top);
pDC->LineTo(rect.left-3,rect.top+10);
pDC->LineTo(rect.left+3,rect.top+10);
pDC->LineTo(rect.left ,rect.top);
pDC->SetBkMode(TRANSPARENT); //设置背景透明
//横坐标数字
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+1; i++){
str.Format("%d",i);
pDC->TextOut(rect.left-5+i*nMeshLength, rect.bottom+5, str);
}
//横坐标标识
str.Format("数据序列");
pDC->TextOut(rect.left-5+i*nMeshLength,rect.bottom+5,str);
//纵坐标数字
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=0; i<nyDivisionNumber+1; i++){
str.Format("%1.1f",(float)(i*0.5));
pDC->TextOut(rect.left-30, rect.bottom-i*nMeshLength, str);
}
//纵坐标标识
str.Format("电压(V)");
pDC->TextOut(rect.left+10,rect.top-15,str);
//网格线
pDC->SelectObject(pPenBlue);
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+2; i++){
pDC->MoveTo(rect.left+i*nMeshLength,rect.bottom);
pDC->LineTo(rect.left+i*nMeshLength,rect.top);
}
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=1; i<nyDivisionNumber+2; i++){
pDC->MoveTo(rect.left , rect.bottom-i*nMeshLength);
pDC->LineTo(rect.right, rect.bottom-i*nMeshLength);
}
//恢复以前的画笔
pDC->SelectObject(pOldPen);
delete pPenRed;
delete pPenGreen;
delete pPenBlue;
delete pPenBlack;
0 0
- VC 画坐标 方法2
- VC 画坐标 方法
- vc++中坐标设置及画点
- VC++坐标转换
- vc中坐标映射
- vc++中的坐标转换
- VC中的坐标
- 窗口坐标获取 VC
- VC 坐标体系
- 基于VC++的OpenGL编程讲座之坐标变换(2)
- 基于VC++的GDI常用坐标系统及应用(2)
- VC的逻辑坐标和设备坐标
- VC屏幕坐标与窗口坐标
- VC控件坐标与屏幕坐标
- vc++中获取鼠标的坐标值于状态栏中的四种方法
- VC 获取鼠标点坐标
- 【VC / MFC】二维坐标旋转
- VC绘图中的坐标缩放
- MySql增加字段、删除字段、修改字段名称、修改字段类型
- 程序员的职业规划
- PropertyDescriptor获取javaBean的get set
- 五年程序员谈软件工程师的职业规划
- jQuery学习笔记2——选择器的练习
- VC 画坐标 方法2
- 信息检索(IR)的评价指标介绍-准确率、召回率、F1、mAP、ROC、AUC
- vmvare 安装 tools
- Linux下Oracle 10G静默安装
- android SQLite使用程序整理
- 附录 A :C++/C 代码审查表
- VS编译汇编语言
- 自制bootstrap分页插件
- Linux Tomcat 自启动