关于画弧的两个问题! 没有直接的这种函数,自己修改一个吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 起始点问题见msdn:CDC::ArcTo.vc中画弧就三个函数,在win98下有的还不能用。下面是我自己写的画弧的函数,仅供参考。我写的程序很烂,凑合看吧。//start:起点,rear:终点,都必须在弧上,center:圆心.fPoint:实数表示的二维坐标点//逆时针画弧//把弧分为小段,以直线代替void CMyView::DrawArc(fPoint center, fPoint start, fPoint rear,CDC* pDC){ double r=GetLength(center,start);//get radius double chordlong=GetLength(start,rear);//求弦长 double angle=2*asin(chordlong/2/r);//圆心角 const int no=50;//份数 double miniang=angle/no; double k1=tan(miniang); fPoint fp1=start; CPoint cp1=ChangePoint(fp1);//change to CPoint pDC->MoveTo(cp1); fPoint fp2; double ks=(center.y-fp1.y)/(center.x-fp1.x) ; for(int i=1;i<=50;i++) { double ke=(k1+ks)/(1-k1*ks); double aa=sqrt(r*r/(ke*ke+1)); double x1=aa+center.x; double x2=-aa+center.x; double y1=ke*(x1-center.x)+center.y; double y2=ke*(x2-center.x)+center.y; if(y1<center.y) { fp2.x=x1; fp2.y=y1; } else { fp2.x=x2; fp2.y=y2; } CPoint cp2=ChangePoint(fp2); pDC->LineTo(cp2); ks=ke; }} JS如何回调ActiveX winexec调用问题 08下两个错误 大家帮看看! 如何运用高斯混合模型进行人脸肤色建模 HttpOpenRequest的第3个参数想输入一个http地址要怎么办? 对话框中的ActiveX控件的调用问题 请教全局变量和全局函数放在.h文件和放在.cpp文件中有什么区别? 如何link一些obj文件成exe文件??? 请教:vc中编译连接出错 opencv行人检测读取完正负样本后中断 请问??????(关于CListCtrl) 下面的SQL语句该怎么写,请各位帮帮忙了,很简单的!
//逆时针画弧
//把弧分为小段,以直线代替
void CMyView::DrawArc(fPoint center, fPoint start, fPoint rear,CDC* pDC)
{
double r=GetLength(center,start);//get radius double chordlong=GetLength(start,rear);//求弦长 double angle=2*asin(chordlong/2/r);//圆心角 const int no=50;//份数 double miniang=angle/no; double k1=tan(miniang);
fPoint fp1=start;
CPoint cp1=ChangePoint(fp1);//change to CPoint
pDC->MoveTo(cp1); fPoint fp2;
double ks=(center.y-fp1.y)/(center.x-fp1.x) ; for(int i=1;i<=50;i++)
{
double ke=(k1+ks)/(1-k1*ks);
double aa=sqrt(r*r/(ke*ke+1)); double x1=aa+center.x;
double x2=-aa+center.x;
double y1=ke*(x1-center.x)+center.y;
double y2=ke*(x2-center.x)+center.y;
if(y1<center.y)
{
fp2.x=x1;
fp2.y=y1;
}
else
{
fp2.x=x2;
fp2.y=y2;
}
CPoint cp2=ChangePoint(fp2);
pDC->LineTo(cp2);
ks=ke;
}
}