📄 cdraw1.cpp
字号:
// Cdraw1.cpp : implementation file
//
#include "stdafx.h"
#include "lms.h"
#include "Cdraw1.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCdraw1 dialog
CCdraw1::CCdraw1(CWnd* pParent /*=NULL*/)
: CDialog(CCdraw1::IDD, pParent)
{
//{{AFX_DATA_INIT(CCdraw1)
m_d1 = 0.0;
m_f1 = 0.0;
m_hb1 = 0.0;
m_hu1 = 0.0;
//}}AFX_DATA_INIT
}
void CCdraw1::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCdraw1)
DDX_Text(pDX, IDC_d1, m_d1);
DDX_Text(pDX, IDC_f1, m_f1);
DDX_Text(pDX, IDC_hb1, m_hb1);
DDX_Text(pDX, IDC_hu1, m_hu1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCdraw1, CDialog)
//{{AFX_MSG_MAP(CCdraw1)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_update, Onupdate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCdraw1 message handlers
void CCdraw1::OnPaint()
{
UpdateData(true);
CPaintDC dc(this); // device context for painting
dc.SetMapMode(MM_ANISOTROPIC);//修改映射模式
dc.SetWindowOrg(0,60);//设备坐标(左上角)
dc.SetWindowExt(40,-60);//设备坐标(右下角)
CRect rc;
GetClientRect(rc);
dc.SetViewportOrg(0,10);//视图坐标
dc.SetViewportExt(rc.Width(),rc.Height());
dc.MoveTo(0,0);
for(double x=5;x<40;x+=3)
{
dc.MoveTo(x,18);
dc.LineTo(x,60);
}
for(double y=20;y<60;y+=2)
{
dc.MoveTo(4.7,y);
dc.LineTo(40,y);
}
CPen pen(PS_SOLID,0.5,RGB(255,0,0)),*pOldPen;
pOldPen=dc.SelectObject(&pen);
for(m_d1=5,m_fa1=60;m_d1<40;m_d1+=5)
{
dc.MoveTo(m_d1,m_fa1);
m_fa1=39.82+30.81-6.16*log10(m_f1)+13.82*log10(m_hb1)+8.29*log10(1.54*m_hu1)*log10(1.54*m_hu1)-1.10-(44.9-6.55*log10(m_hb1))*log10(m_d1)+4;
m_fa1=m_fa1-10;
m_n=m_fa1;
dc.LineTo(m_d1+5,m_n);
}
dc.SelectObject(pOldPen);
CPen pen1(PS_SOLID,0.5,RGB(0,255,0));
pOldPen=dc.SelectObject(&pen1);
for(m_d1=5,m_fa1=60;m_d1<40;m_d1+=5)
{
dc.MoveTo(m_d1,m_fa1);
m_fa1=39.82+30.81-6.16*log10(m_fa1)+13.82*log10(m_hb1)+8.29*log10(1.54*m_hu1)*log10(1.54*m_hu1)-1.10-(44.9-6.55*log10(m_hb1))*log10(m_d1)-2.5;
m_fa1=m_fa1-10;
m_n=m_fa1;
dc.LineTo(m_d1+5,m_n);
}
dc.SelectObject(pOldPen);
CPen pen2(PS_SOLID,0.5,RGB(0,0,255));
pOldPen=dc.SelectObject(&pen2);
for(m_d1=5,m_fa1=60;m_d1<40;m_d1+=5)
{
dc.MoveTo(m_d1,m_fa1);
m_fa1=39.82+30.81-6.16*log10(m_fa1)+13.82*log10(m_hb1)+8.29*log10(1.54*m_hu1)*log10(1.54*m_hu1)-1.10-(44.9-6.55*log10(m_hb1))*log10(m_d1)+5.5;
m_fa1=m_fa1-10;
m_n=m_fa1;
dc.LineTo(m_d1+5,m_n);
}
dc.SelectObject(pOldPen);// TODO: Add your message handler code here
/*CPen pen3(PS_SOLID,0.5,RGB(125,125,125));
pOldPen=dc.SelectObject(&pen3);
for(m_d1=5,m_fa1=60;m_d1<40;m_d1+=5)
{
dc.MoveTo(m_d1,m_fa1);
m_fa1=39.82+30.81-6.16*log10(m_f1)+13.82*log10(m_hb1)+8.29*log10(1.54*m_hu1)*log10(1.54*m_hu1)-1.10-(44.9-6.55*log10(m_hb1))*log10(m_d1)+4.78*log10(m_f1)*log10(m_f1)-18.33*log10(m_f1)+40.94-0.8-20;
m_n=m_fa1;
dc.LineTo(m_d1+5,m_n);
}
dc.SelectObject(pOldPen);// Do not call CDialog::OnPaint() for painting messages*/
UpdateData(false);
}
void CCdraw1::Onupdate()
{
Invalidate();// TODO: Add your control notification handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -