网站建设商业阶段东营建设信息网网

张小明 2026/1/1 12:40:55
网站建设商业阶段,东营建设信息网网,工商网站查询企业信息官网全国,搜索引擎广告有哪些Qt/C实现的热力图功能#xff0c;通过选择一张图片背景图后#xff08;PNG,JPG常用图片格式#xff09;#xff0c;左上角还支持输入半径#xff0c;可以设置绘制的半径#xff0c;半径越大热力图半径越大#xff0c;通过鼠标点击界面出现热力图的效果#xff0c;点击次…Qt/C实现的热力图功能通过选择一张图片背景图后PNG,JPG常用图片格式左上角还支持输入半径可以设置绘制的半径半径越大热力图半径越大通过鼠标点击界面出现热力图的效果点击次数越多热力效果值越高热力值由蓝橙红几种颜色点击次数越多颜色越红支持增加网格线支持清除界面的热力图以及图片。 详情见操作视频。 新增热力图颜色设置有6个轮廓圈颜色设置最外层为c1最内部为c6每个轮廓圈颜色比例设置见下图。 源码 使用Qt5.6.1_MinGWQt5.13.1_MinGW编译通过其他版本请自行尝试。 c.61最近在捣鼓一个Qt/C的热力图功能感觉还挺有意思的。今天就来分享一下实现过程和一些代码细节。首先这个功能的核心是通过鼠标点击在图片上生成热力图点击次数越多热力值越高颜色也会从蓝色逐渐变为红色。听起来是不是有点酷背景图的选择首先我们需要选择一张背景图。支持PNG和JPG格式这个比较简单直接用Qt的QFileDialog就能搞定。QString fileName QFileDialog::getOpenFileName(this, tr(Open Image), , tr(Image Files (*.png *.jpg *.bmp))); if (!fileName.isEmpty()) { QPixmap pixmap(fileName); ui-label-setPixmap(pixmap); }这段代码就是打开一个文件选择对话框用户选择图片后将其加载到QLabel中显示。热力图的绘制接下来是热力图的绘制部分。我们通过鼠标点击来生成热力图点击次数越多热力值越高。这里我们用一个二维数组来存储每个像素点的热力值。void MainWindow::mousePressEvent(QMouseEvent *event) { if (event-button() Qt::LeftButton) { QPoint pos event-pos(); int x pos.x(); int y pos.y(); // 更新热力值 heatMap[x][y] 1; update(); } }每次鼠标点击时我们更新对应位置的热力值并调用update()函数触发重绘。颜色的渐变热力图的颜色渐变是通过热力值来决定的。我们可以用一个简单的线性插值来实现颜色从蓝色到红色的渐变。QColor getHeatColor(int value) { int maxValue 100; // 假设最大热力值为100 int r 255 * value / maxValue; int g 0; int b 255 - (255 * value / maxValue); return QColor(r, g, b); }这个函数根据热力值返回一个颜色热力值越高红色成分越多蓝色成分越少。网格线的绘制有时候我们可能需要显示网格线来更好地观察热力图。这个功能也很简单直接用QPainter画线就行了。void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); // 绘制热力图 for (int i 0; i width(); i) { for (int j 0; j height(); j) { if (heatMap[i][j] 0) { QColor color getHeatColor(heatMap[i][j]); painter.setPen(color); painter.drawPoint(i, j); } } } // 绘制网格线 painter.setPen(Qt::gray); for (int i 0; i width(); i 10) { painter.drawLine(i, 0, i, height()); } for (int j 0; j height(); j 10) { painter.drawLine(0, j, width(), j); } }清除功能最后我们还需要一个清除功能可以一键清除所有的热力图和背景图。void MainWindow::on_clearButton_clicked() { // 清除热力图 memset(heatMap, 0, sizeof(heatMap)); // 清除背景图 ui-label-clear(); update(); }新增的颜色设置最近还新增了一个功能可以设置热力图的轮廓圈颜色。总共有6个轮廓圈每个轮廓圈的颜色可以自定义。void MainWindow::setContourColors(QColor c1, QColor c2, QColor c3, QColor c4, QColor c5, QColor c6) { contourColors[0] c1; contourColors[1] c2; contourColors[2] c3; contourColors[3] c4; contourColors[5] c5; contourColors[6] c6; }这个功能可以让热力图更加个性化用户可以根据自己的喜好来设置颜色。总结总的来说这个热力图功能的实现并不复杂主要是通过鼠标点击来更新热力值然后根据热力值来绘制颜色。新增的轮廓圈颜色设置也让这个功能更加灵活。如果你对这个功能感兴趣可以下载源码自己试试看。源码已经用Qt5.6.1MinGW和Qt5.13.1MinGW编译通过其他版本可能需要稍作调整。好了今天的分享就到这里希望对你有帮助
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

在线做投资网站昆明网站建设昆明

Flutter AR 开发:打造厘米级精度的室内导航应用 引言 “AR 导航漂移严重,用户绕圈找不到出口!” “在商场里定位误差高达 5 米,完全不可用!” “手机发热严重,AR 模式只能坚持 3 分钟!” ——这…

张小明 2025/12/30 17:12:14 网站建设

折800网站源码门户网站开发 系统介绍

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级视频采集系统,基于you-get核心功能扩展。要求:1) 分布式任务队列管理 2) 自动重试机制 3) 下载进度监控面板 4) 结果通知(邮件/钉钉) 5) 支持…

张小明 2025/12/29 13:26:36 网站建设

如何创建电子商务网站郑州网站seo厂家

在移动应用生态日益复杂的今天,用户每天需要在数十个APP间频繁切换,完成从社交沟通到生活服务的各类操作。这种碎片化的使用体验不仅消耗用户精力,更成为阻碍AI智能体在移动端落地的关键瓶颈。智谱AI推出的AndroidGen-GLM-4-9B开源模型&#…

张小明 2025/12/29 18:18:28 网站建设

开淘宝店怎么做充值网站网站建设 sql 模版

视频字幕提取终极指南:3步轻松提取任何视频硬字幕 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取…

张小明 2025/12/29 23:37:17 网站建设

嵌入式转行到网站开发wordpress固定链接怎么设置

Obsidian Templater插件:从零构建智能笔记自动化工作流 【免费下载链接】Templater A template plugin for obsidian 项目地址: https://gitcode.com/gh_mirrors/te/Templater 在信息爆炸的时代,如何高效管理知识笔记成为每个学习者和专业人士的痛…

张小明 2025/12/29 17:18:09 网站建设

南宁手机网站建设公司做移动网站建设

kiss-translator:零配置打造你的专属离线翻译助手 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/gh_…

张小明 2025/12/29 17:40:48 网站建设