如何画一跟带箭头的线?

catcafee 2003-09-12 05:01:01
如何画一跟带箭头的线?
...全文
119 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sorcerercwy 2003-12-03
  • 打赏
  • 举报
回复
我构造一个函数,是在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);
}
chinalijun19790517 2003-09-13
  • 打赏
  • 举报
回复
看看JTDraw例子 网上到处都有
westlingsnow 2003-09-13
  • 打赏
  • 举报
回复
水平或向上的画完线后,再输入一出一个字符">","<","^"不就行了?呵呵
GreatBear1982 2003-09-13
  • 打赏
  • 举报
回复
我通常是画三条直线,,
但是我觉得那样如果移动的话就不方便!
不如自己定义一种格式,,类似于CPoint类一样!
可以做成一个函数,,那样就好了!!
搬不搬砖 2003-09-13
  • 打赏
  • 举报
回复
画三条直线就行了
esri 2003-09-13
  • 打赏
  • 举报
回复
不错阿,可是你怎么知道它的方向呢?
MicoInNet 2003-09-13
  • 打赏
  • 举报
回复
我最近刚画了一个这种带箭头的线,真巧。
我是在先画一条直线,然后获取直线的末端点坐标(m_End(x,y))画一个多边形(三角形),
里面的填充颜色和直线的一样就行了。
pDC->MoveTo(line.m_Start);
pDC->LineTo(line.m_End);
CPoint p1(line.m_End.x + line.m_nPenWidth * 2,line.m_End.y - line.m_nPenWidth* 5);
CPoint p2(line.m_End.x - line.m_nPenWidth * 2,line.m_End.y - line.m_nPenWidth* 5);
CPoint p2(line.m_End.x ,line.m_End.y);//直线向下
CPoint pArray[3];
pArray[0] = p1;
pArray[1] = p2;
pArray[0] = p3;
pDC->Polygen(pArray);
lshadow 2003-09-12
  • 打赏
  • 举报
回复
自己画,mfc里是没有这样的函数的
szAlanLiao 2003-09-12
  • 打赏
  • 举报
回复
回复人: nustbobo(pipi)
先画一根直线,再从直线的一端画两根斜线:)

呵呵,我也一直是这样画的:)
nustbobo 2003-09-12
  • 打赏
  • 举报
回复
先画一根直线,再从直线的一端画两根斜线:)
daylight1980 2003-09-12
  • 打赏
  • 举报
回复
实在不行,画三根吗!
edwardsoft 2003-09-12
  • 打赏
  • 举报
回复
箭头得线得端点坐标通常都是通过角度算出来的。
如果条件可以,你可以使用GDI+ ,里面已经封装了画带箭头直线得函数。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧