用GDI+画图时,要对图中某一部分文本旋转30度后输出应如何操作?谢谢!

解决方案 »

  1.   

    是这样,我问题没有描述清楚。我要画一张图表,由于其横坐标上的描述label每条都很长,所以要每条倾斜30度来显示。g.RotateTransform(30)后用一个循环来DrawString每条label,但运行后发现横坐标的label一个都不显示了,不知这是什么问题。
      

  2.   

    不好意思,查出问题是因为定义的Bitmap不够大。
      

  3.   

    我的代码是这样:
    g.RotateTransform(30);
    for(i=0;i<11;i++)
    {
        start_x = 50+i*40;
        start_y = 300;
        g.DrawString("2005-04-05",font,brush,start_x,start_y);
    }
    本来应该是从点(50,300)开始,沿着横坐标每隔40象素平行排列一条倾斜30度的label,但实际运行却是所有label连在一起,整体倾斜了30度,并且起点并不是(50,300),不知哪位达人了解此问题?!
      

  4.   

    如果是那么多的label,不能用RotateTransform这个函数,它是整体的变化。
    我再想想。
      

  5.   

    在定义label的时候不能修改一下么
      

  6.   

    受达人的启发,自行解决!代码为:
    for(i=0;i<11;i++)
    {
        g.TranslateTransform(50+i*40,300);
        g.RotateTransform(30);
        g.DrawString("2005-04-05",font,brush,0,0);
        g.ResetTransform();
    }
    即将对全局变换矩阵的偏移和旋转放入循环里面,之后DrawString的位置设为原点,且每做一次循环后还要重置。成就感巨大!结贴!