怎么用vc编写一个程序:在两点之间画一个箭头,要求箭头填充

来源:百度知道 编辑:UC知道 时间:2024/06/27 04:57:28
在两点之间画一个箭头,要求箭头填充

或者给定一个圆,怎么标注半径?

画直线是MoveTo,LineTo,你该知道吧;
箭头就是一个三角形,可以定义一个长度为3的CPoint数组,定义一个画刷,然后就可以用Polygon函数画填充的三角形了;
至于确定箭头三角形除箭头顶点的其他两点坐标,用以下方法确定:
假设箭头线的起点为begin,箭头顶点为end
double slopy , cosy , siny;
double Par = 10.0; //length of Arrow
slopy = atan2((begin.y - end.y), (begin.x - end.x));
cosy = cos(slopy);
siny = sin(slopy);

两点坐标为
end.x + int(Par * cosy - (Par / 2.0 * siny)),
end.y + int(Par * siny + (Par / 2.0 * cosy));

end.x + int(Par * cosy + Par / 2.0 * siny),
end.y - int(Par / 2.0 * cosy - Par * siny)