1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
(30, 30)您當(dāng)前的代碼是在略有不同的位置(從(0, 1)到)繪制 4 個(gè)相同大小的矩形(2, 2),因?yàn)槟皇鞘褂脭?shù)組索引器作為L(zhǎng)ocation坐標(biāo)。
簡(jiǎn)單的解決方案,使用Rectangle.Size您現(xiàn)在顯示的值:
(x, y)將 的值增加Rectangle.Location由矩形Height和定義的偏移量,將矩陣中Width的當(dāng)前位置乘以這些偏移量:( 請(qǐng)注意,索引用于乘以高度偏移量;當(dāng)然與 相反)(x, y)
xy
private int[,] matrix = new int[3, 3] {
{ 0, 1, 0 },
{ 0, 1, 0 },
{ 0, 1, 1 }
};
Size rectSize = new Size(30, 30);
private void aCanvas_Paint(object sender, PaintEventArgs e)
{
int xPosition = 0;
int yPosition = 0;
using (var brush = new SolidBrush(Color.Tomato)) {
for (var x = 0; x <= matrix.GetLength(0) - 1; x++)
for (var y = 0; y <= matrix.GetLength(1) - 1; y++)
{
xPosition = y * rectSize.Width;
yPosition = x * rectSize.Height;
if (matrix[x, y] != 0) {
var rect = new Rectangle(new Point(xPosition, yPosition), rectSize);
e.Graphics.FillRectangle(brush, rect);
}
}
}
}
使用此矩陣:
private int[,] matrix = new int[3, 3] {
{ 0, 1, 0 },
{ 0, 1, 0 },
{ 1, 1, 1 }
};
你得到這個(gè):
- 1 回答
- 0 關(guān)注
- 100 瀏覽
添加回答
舉報(bào)