首页 > 编程语言 > 详细

MFC画带箭头的直线

时间:2015-11-10 09:17:54      阅读:290      评论:0      收藏:0      [点我收藏+]
构造一个函数,是在startPoint,endPoint间画一条带箭头的线段:
void CTry1View::DrawLine(POINT startPoint, POINT endPoint)
{
CClientDC dc(this);
dc.MoveTo(startPoint);
dc.LineTo(endPoint);

double PI = 3.1415926;
double t=PI/4; //箭头与直线夹角
double l=0.2; //箭头边长度占直线长度的百分比

POINT arrowPoint;

arrowPoint.x = (int)(l*((startPoint.x-endPoint.x)*cos(t)-(startPoint.y-endPoint.y)*sin(t))+endPoint.x);
arrowPoint.y = (int)(l*((startPoint.x-endPoint.x)*sin(t)+(startPoint.y-endPoint.y)*cos(t))+endPoint.y);
dc.MoveTo(endPoint);
dc.LineTo(arrowPoint);

arrowPoint.x = (int)(l*((startPoint.x-endPoint.x)*cos(-t)-(startPoint.y-endPoint.y)*sin(-t))+endPoint.x);
arrowPoint.y = (int)(l*((startPoint.x-endPoint.x)*sin(-t)+(startPoint.y-endPoint.y)*cos(-t))+endPoint.y);
dc.MoveTo(endPoint);
dc.LineTo(arrowPoint);
}

 

MFC画带箭头的直线

原文:http://www.cnblogs.com/Decmber/p/4951871.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!