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

遵义网站建设遵义做化工的网站

遵义网站建设遵义,做化工的网站,陕西住房与城乡建设厅网站,抖音小程序推广码怎么获得描述 在Qt中#xff0c;要计算一个点到一条线段的垂线段的长度#xff08;即点到线段上最近点的距离#xff0c;且这个点是垂直于线段的#xff09;#xff0c;你不能直接使用QVector2D::distanceToLine#xff0c;因为这个方法计算的是点到直线的垂直距离#xff0c;而…描述  在Qt中要计算一个点到一条线段的垂线段的长度即点到线段上最近点的距离且这个点是垂直于线段的你不能直接使用QVector2D::distanceToLine因为这个方法计算的是点到直线的垂直距离而不是到线段的垂直距离。线段有起点和终点而直线是无限延伸的。 为了计算点到线段的垂线段长度你需要考虑几种情况 如果点的投影在线段上则垂线段长度就是点到投影点的距离。如果点的投影在线段的起点或终点之外则垂线段长度是点到线段起点或终点的距离中的较小值(这个没搞清楚。好在我当前的需求不会出现投影在线段之外的情况)。 下面是一个使用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.hkea.cn/news/14513508/

相关文章:

  • 自己做的网站显示不出来山西省
  • 天津市建设监理协会网站网站群的建设目标
  • o2o网站建设资讯网站设计配色
  • 阿里云建站后台软件工程培训
  • wordpress 下载网站模板辽宁营销型网站建设
  • 有意思的网站密码管理
  • 中山软件开发定制昆明关键词优化软件
  • 网站研发费用吗公司的网站怎么运营
  • 四川省建设工程招投标网站小网站做长尾词还是流量词
  • 重庆属于哪个省china东莞seo
  • 电子商务和网站建设方案wordpress超级留言版
  • 双牌网站建设网站开发工程师岗位说明书
  • 金融理财网站建设科技小制作 手工 简单
  • 专业的网站建设宝安西乡如何制作app软件步骤
  • 电子商务网站建设各项费用预算是多少烟台网站建设技术托管
  • 网站续费模版网站建设的售后服务
  • 地方志网站建设甘肃网站备案审核
  • 做汽车价格的网站wordpress 新浪微博
  • saas建站 cms单县住房和城乡建设局网站
  • 个人网站作品下载网站建设与网页设计大作业
  • 郑州汽车网站建设哪家好最新军事新闻报道
  • 网站建设与管理试题及答案芜湖龙湖建设工程有限公司网站
  • 网站制作公司服务东莞怎样做网站建设
  • 企石网站建设注册公司的流程图
  • 腾讯理财是什么样的做网站江门网站建设设计
  • 企业培训师资格证网络优化主要做什么
  • aap手机网站建设个人微博网页制作代码教程
  • 陕西十二建设有限公司网站怎么制作网站教程步骤视频
  • 有没有做皮艺的网站预算有哪些网站做私活
  • 做好网站功能性建设工作微商网站如何做推广方案