Qt 绘制可以用鼠标拖动的线段(QT画线可以拖动) 您所在的位置:网站首页 怎么用鼠标画线 Qt 绘制可以用鼠标拖动的线段(QT画线可以拖动)

Qt 绘制可以用鼠标拖动的线段(QT画线可以拖动)

2024-07-16 02:28| 来源: 网络整理| 查看: 265

如果在这条线段上,则选中这条线段 void MyGraphCal::selSeg(QPointF&pt) { int num = lineSegs.size(); for(int i = 0; i < num; i++) { LINESEG* oneLine = lineSegs.at(i); LineSegment* oneLineDeg = oneLine->seg; PointEx ptEx(pt.x(), pt.y()); PointEx np;//线段上的点 double dis = pToLinesegDist(ptEx, *oneLineDeg, np); if(dis < 5 && dis >= 0.0) { double l = relation(np, *oneLineDeg); if(abs(l)< EP) {//起点 oneLine->bSelStartPt = true; oneLine->bSelLine = false; oneLine->bSelEndPt = false; } else if(abs(l - 1.0) < EP) {//终点 oneLine->bSelEndPt = true; oneLine->bSelLine = false; oneLine->bSelStartPt = false; } else if(l < 1 && l > 0) {//整条线 oneLine->bSelLine = true; oneLine->bSelEndPt = false; oneLine->bSelStartPt = false; } } else { oneLine->bSelLine = false; oneLine->bSelEndPt = false; oneLine->bSelStartPt = false; } } }

四、向量 以上计算过程中用到了向量和向量的点积 向量的几何意义:一条有方向的线段 这就是上面定义的线段的来源,定义一点线段要定一它的起始点和终止点,从起始点到终止点的方向就是向量的方向。 点积的结合意义:向量a、b,r = a*b=|a|*|b|cosα。也就是:向量a的模乘以向量b在向量a上的投影的长度。 因为α是一个角度,所以可以通过结果r的正负获取两条线段之间的简单关系: r>0:两个向量之间的夹角在0-90度之间 r=0:两个向量互相垂直 r



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有