如何让条形图位于图片框的底部?



我已经试了几个小时了,但似乎还是不明白。我怎样才能把条形图放在图片盒的底部而不是挂在上面呢?这是一张目前为止的图片。我试过改变Y的位置,但它只是把整个图形向下移动,而不是反转。

我想使用DrawRectangle, DrawLine方法将行走的距离显示在条形图中。下面是我用来绘制条形图的两种方法:

从列表中检索数据并在图片框中显示为条形图的方法:

private void DrawBarGraph()
{
Graphics canvas = pictureBoxTop.CreateGraphics();
int x = 200;
int y = 0;
foreach (int i in distanceList)
{
int length = SCALE_FACTOR * i;
DrawABar(canvas, x, y, length , Color.Red);
x += BAR_WIDTH + GAP;
}             
}

绘制条的方法:

private void DrawABar(Graphics paper, int x, int y, int length, Color colour)
{
//create a brush of specified colour and fill background with this colour 
SolidBrush brush = new SolidBrush(colour);
paper.FillRectangle(brush, x, y, BAR_WIDTH, length);
//draw outline in black
paper.DrawRectangle(Pens.Black, x, y, BAR_WIDTH, length);
}

使用DrawRectangle方法绘制条形图。

OP的解决方案(从问题帖子中提取)

/// <summary>
/// Draw a bar graph in the picture box
/// </summary>
private void DrawBarGraph()
{
Graphics canvas = pictureBoxTop.CreateGraphics();
// Set world transform of graphics object to translate.
canvas.TranslateTransform(1200.0F, 195.0F);
// Then to rotate, prepending rotation matrix.
canvas.RotateTransform(180.0F);
//set row and column length then allocate colors to specific columns
int x = 0;
int y = 0;
foreach (int i in distanceList)
{
int length = SCALE_FACTOR * i;
DrawABar(canvas, x, y,length , Color.Red);
x += BAR_WIDTH + GAP;
}               
}

经过几次谷歌搜索和更多的游戏后,我发现了两个用于旋转图片框内图像的方法。

下面是图片:使用RotateTransfrom和RotateFlip属性的倒条形图。

相关内容

  • 没有找到相关文章