MFC中如何使用根号

来源:百度知道 编辑:UC知道 时间:2024/09/22 18:54:15
我画一个弧线,在ONDRAW中输入了如下代码

void CCircleView::OnDraw(CDC* pDC)
{
CCircleDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//画圆
CBrush br(RGB(255,0,0));
CClientDC dc(this);
CBrush *pOldBr=dc.SelectObject(&br);
dc.Ellipse(0,0,100,100);
dc.SelectObject(pOldBr);
//弧线
CPen newPen(PS_SOLID,3,RGB(255,0,0));
CPen *pOldPen=dc.SelectObject(&newPen);
dc.MoveTo(450,300);
dc.LineTo(450,300);
for(int i=0;i<=150;i++)
{
m_nX=i;
m_nT=sqrt(150*150-i*i);
m_nY=int(m_nT);
dc.MoveTo(m_nX+450,m_nY+300);
dc.LineTo(m_nX+450,m_nY+300);
}
dc.SelectObject(pOldPen);

}

问题就是出在m_nT=sqrt(150*150-i*i);
变量是这么声明的:
double m_nT;
int m_nY;
int m_nX;
头文件我试着加了
#include <cmath>
#include <math.h> (网上看到的,试了都不行)
请高手指教

怪。
如果代码不需要保密,建议压一下传到 何丹的论坛。
我估计十有八九是其它地方的问题

它是不是说重载函数不明确了,试一试:
m_nT=(int)sqrt(double(150*150-i*i));
如果不是这个问题的话,你把错误原因也打上来吧