如何在Qt中缩放具有亚像素宽度的线
How to scale a line with sub-pixel width in Qt?
我想在原图像坐标系下显示带有直线和多边形的缩放图像,无论显示缩放,像素始终为1x1正方形。例如,我想显示一条从像素(0,0)中心到像素(9,9)中心的细线段,但是下面的代码片段产生一条粗线,因为比例太高了:
int main(int argc, char *argv[])
{
const int scale = 44;
QApplication a(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
QImage image("test.bmp");
auto line = new QGraphicsLineItem (0.5, 0.5, 9.5, 9.5);
line->setPen(QPen(Qt::blue));
scene.addPixmap(QPixmap::fromImage(image));
scene.addItem(line);
view.scale(scale, scale);
view.show();
return a.exec();
}
如何使这条线变细,使其在对宽度应用比例之前具有亚像素厚度,从而使最终厚度小于scale
的值?
这可以通过使用重新缩放的坐标(scale*0.5, scale*0.5, scale*9.5, scale*9.5)来实现,但我想避免这种情况。
看一下void QPen::setWidth(int width)和void QPen::setWidthF(qreal width)。
QPen pen(Qt::blue);
pen.setWidth(0);
line->setPen(pen);
相关文章:
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何在24位SDL_Surface上设置像素的颜色
- 如何从SDL_Surface获取特定像素的颜色
- 在Qt-cpp中通过像素获取QString的子字符串
- 如何使用Qt读取我的应用程序屏幕像素数据
- Qt在QtWebEngine视图中显示QImage或像素映射(从C++到HTML)
- 如何在Qt 5中从QGraphicsScene中获取像素单击或鼠标悬停的RGB值
- 从 QT 中的缓冲区加载像素图
- 在Qt中用像素图画笔画一条线
- Qt - 在像素操作后显示无符号字符
- 抓取Window并使用Qt分析像素
- 如果新图像中的原始像素为黑色,则Qt绘制一个蓝色像素
- (Qt C++)调整像素图大小并保持像素化
- 如何在Qt中缩放具有亚像素宽度的线
- Qt的分数像素大小
- 从Qt中的每个像素读取Alpha通道
- 在Qt中以编程方式设置QLabel的像素图
- 在QT框架中设置QLabel的像素图
- QT c++中像素距离的计算