脚本宝典收集整理的这篇文章主要介绍了绘制带箭头的直线【MFC】,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
有些参数还可以进行提取优化,目前只能算个雏形。
void drawArrow(CDC* pDC,CPoint start,CPoint end) {
double PI = acos(-1);
pDC->SelectObject(new CPEn(PS_SOLID, 1, RGB(0, 0, 0)));
pDC->moveTo(start);
pDC->Lineto(end);
CPoint l, r;
if (start.x == end.x) {
int y = 9;
if (end.y > start.y)y = -y;
CPoint right(end.x-5,end.y+y), left(end.x + 5, end.y + y);
l = left;
r = right;
}
else {
//获取斜率
double angle = atan(1.0*(end.y - start.y) / (end.x - start.x));
int rarrowx = end.x - 10 * cos(PI / 6 + angle);
int rarrowy = end.y - 10 * sin(PI / 6 + angle);
int larrowx = end.x - 10 * sin(PI / 3 + angle);
int larrowy = end.y + 10 * cos(PI / 3 + angle);
CPoint right(rarrowx, rarrowy), left(larrowx, larrowy);
l = left;
r = right;
}
pDC->MoveTo(r);
pDC->LineTo(end);
pDC->MoveTo(l);
pDC->LineTo(end);
}
以上是脚本宝典为你收集整理的绘制带箭头的直线【MFC】全部内容,希望文章能够帮你解决绘制带箭头的直线【MFC】所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。