g.DrawLine画矩形时,角不能完全重合 pen的宽度为1.25
时间: 2024-05-03 14:22:22 浏览: 9
这是因为画线时,线宽被均分到两边,所以当线宽为奇数时,无法完全重合。解决方法是将矩形的宽度和高度减去1,使其变成偶数,这样就可以完全重合了。例如:
```
g.DrawLine(pen, x, y, x + width - 1, y);
g.DrawLine(pen, x + width - 1, y, x + width - 1, y + height - 1);
g.DrawLine(pen, x + width - 1, y + height - 1, x, y + height - 1);
g.DrawLine(pen, x, y + height - 1, x, y);
```
这样就可以画出一个完全重合的矩形了。
相关问题
g.DrawLine画矩形
要使用g.DrawLine来画矩形,您需要使用四条线段来画出矩形的四边。以下是一个示例代码:
```
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Black, 2);
g.DrawLine(pen, 50, 50, 150, 50);
g.DrawLine(pen, 50, 50, 50, 150);
g.DrawLine(pen, 150, 50, 150, 150);
g.DrawLine(pen, 50, 150, 150, 150);
```
这个代码将在窗体上画出一个宽为2个像素、颜色为黑色的矩形。您可以根据需要调整线条的颜色、宽度和位置来画出不同尺寸和样式的矩形。
painter.drawLine 画不出来线
可能是因为没有设置画笔的属性或者绘制的区域不正确。请检查以下几个方面:
1. 确认你已经创建了画笔对象,并且设置了画笔的颜色、线宽等属性。
2. 确认你已经获取了绘制区域的正确坐标,比如使用QWidget的width()和height()获取宽高。
3. 确认你已经使用begin()和end()函数包围住了绘制代码,比如:
```c++
QPainter painter(this);
painter.begin(this);
painter.setPen(Qt::red);
painter.drawLine(0, 0, width(), height());
painter.end();
```
如果你已经检查了以上几个方面还是画不出来线,可以提供更多的代码或者错误信息,我可以帮你进一步排查问题。