当前位置: 首页 > news >正文

网站推广软件推荐wordpress用户密码加密算法

网站推广软件推荐,wordpress用户密码加密算法,呼和浩特建设工程安全管理网站,免费追剧的软件描述 在Qt中,要计算一个点到一条线段的垂线段的长度(即点到线段上最近点的距离,且这个点是垂直于线段的),你不能直接使用QVector2D::distanceToLine,因为这个方法计算的是点到直线的垂直距离,而…

描述 

在Qt中,要计算一个点到一条线段的垂线段的长度(即点到线段上最近点的距离,且这个点是垂直于线段的),你不能直接使用QVector2D::distanceToLine,因为这个方法计算的是点到直线的垂直距离,而不是到线段的垂直距离。线段有起点和终点,而直线是无限延伸的。

为了计算点到线段的垂线段长度,你需要考虑几种情况:

  1. 如果点的投影在线段上,则垂线段长度就是点到投影点的距离。
  2. 如果点的投影在线段的起点或终点之外,则垂线段长度是点到线段起点或终点的距离中的较小值(这个没搞清楚。好在我当前的需求,不会出现投影在线段之外的情况)。

下面是一个使用QVector2D和简单的几何计算来实现这一功能的示例代码:

实验代码 

函数:

qreal Widget::pointToSegmentDistance(const QVector2D &point, const QVector2D &segmentStart, const QVector2D &segmentEnd) {QVector2D segmentDirection = segmentEnd - segmentStart;QVector2D vecFromStartToPoint = point - segmentStart;// 计算投影系数qreal t = QVector2D::dotProduct(vecFromStartToPoint, segmentDirection) / QVector2D::dotProduct(segmentDirection, segmentDirection);qDebug() << t;// 如果投影系数小于0,则最近点是线段起点if (t < 0.0) {return QVector2D(point - segmentStart).length();}// 如果投影系数大于1,则最近点是线段终点if (t > 1.0) {return QVector2D(point - segmentEnd).length();}// 投影在线段上,计算垂线段长度QVector2D projection = segmentStart + t * segmentDirection;return QVector2D(point - projection).length();
}

在paintEvent函数中实现划线,并调用 pointToSegmentDistance计算垂线段距离

void Widget::paintEvent(QPaintEvent *event)
{qreal distance;QPainter painter(this);QPen pen(Qt::blue,3);painter.setPen(pen);QPointF point(100,100);pen.setColor(Qt::blue);painter.setPen(pen);painter.drawPoint(point);pen.setColor(Qt::red);painter.setPen(pen);painter.drawText(QPointF(100,100),"point");QVector2D point_2d(point);QLineF line(50,50,50,150);pen.setColor(Qt::blue);painter.setPen(pen);painter.drawLine(line);pen.setColor(Qt::red);painter.setPen(pen);painter.drawText(line.center(),"line_1");QVector2D line_start_2d(line.p1());QVector2D line_end_2d(line.p2());distance = pointToSegmentDistance(point_2d,line_start_2d,line_end_2d);qDebug() << " to line 1 distance : " << distance;QLineF line2(50,50,150,50);pen.setColor(Qt::blue);painter.setPen(pen);painter.drawLine(line2);pen.setColor(Qt::red);painter.setPen(pen);painter.drawText(line2.center(),"line_2");QVector2D line2_start_2d(line2.p1());QVector2D line2_end_2d(line2.p2());distance = pointToSegmentDistance(point_2d,line2_start_2d,line2_end_2d);qDebug() << " to line 2 distance : " << distance;QLineF line3(150,50,150,150);pen.setColor(Qt::blue);painter.setPen(pen);painter.drawLine(line3);pen.setColor(Qt::red);painter.setPen(pen);painter.drawText(line3.center(),"line_3");QVector2D line3_start_2d(line3.p1());QVector2D line3_end_2d(line3.p2());distance = pointToSegmentDistance(point_2d,line3_start_2d,line3_end_2d);qDebug() << " to line 3 distance : " << distance;QLineF line4(150,200,150,300);pen.setColor(Qt::blue);painter.setPen(pen);painter.drawLine(line4);pen.setColor(Qt::red);painter.setPen(pen);painter.drawText(line4.center(),"line_4");QVector2D line4_start_2d(line4.p1());QVector2D line4_end_2d(line4.p2());distance = pointToSegmentDistance(point_2d,line4_start_2d,line4_end_2d);qDebug() << " to line 4 distance : " << distance;QLineF line5(300,200,300,150);pen.setColor(Qt::blue);painter.setPen(pen);painter.drawLine(line5);pen.setColor(Qt::red);painter.setPen(pen);painter.drawText(line5.center(),"line_5");QVector2D line5_start_2d(line5.p1());QVector2D line5_end_2d(line5.p2());distance = pointToSegmentDistance(point_2d,line5_start_2d,line5_end_2d);qDebug() << " to line 5 distance : " << distance;
}

测试结果:

qDebug输出的结果:

小结 

http://www.yayakq.cn/news/29316/

相关文章:

  • 做淘宝返利网站能挣钱怎么做物流网站
  • 网站建设属于技术开发吗wordpress 菜单添加图片
  • 软工毕设做网站安阳做网站
  • 郑州汉狮哪家做网站好网站查询域名ip查询
  • 手机在线制作表白网站买卖域名的网站好
  • 学校网站cmspckr wordpress
  • 企业建设网站注意点瑞华特散热器网站谁给做的
  • 优惠券网站怎么做网页设计培训哪家正规
  • 酒店网站开发方案绍兴企业网站推广
  • 猪八戒网站建设公司统计局门户网站建设目标
  • 东莞网站seo技术前端开发是做网站的吗
  • 一站式服务英文IT科技资讯新闻类织梦网站模板
  • 如何高效率的建设网站wordpress中的全站链接怎么改
  • 全国十大网站建设公司排名网络推广培训班4800块钱贵吗
  • 企鹅自媒体平台注册百度seo算法
  • 花的网站建设规划书南阳专业做网站公司
  • tp框架做的网站小型网站制作
  • 网站开发品牌有哪些WordPress添加有趣的
  • 试析媒体网站品牌建设招聘网站上怎么做推广
  • ext做的网站做网站 注意
  • 那个网站可以接做网页私活wordpress 预缓存
  • 设计师服务平台网站辽宁专业网页设计免费建站
  • 淘宝客网站推广工具烟台网络科技有限公司
  • 备案期间关闭网站银川哪家网络公司做网站做得好
  • 广州古德室内设计有限公司logo连云港市网站优化
  • 微网站与微信的关系哪个网站做ic好
  • 成都做网站的wordpress首页文章设置
  • 做网站全屏尺寸是多少钱城乡建设和住房建设官网
  • 株洲网站建设企业搭建一个商城网站
  • 什么叫手机网站网站备案期间能使用吗