c#gdi画的图形不能正确显示数据。急求~

求解,这是为什么呢?... 求解,这是为什么呢? 展开
 我来答
freeeeeewind
推荐于2016-07-13 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1455万
展开全部

Graphics.DrawRectangle有好几个重载方法。你用的是

public void DrawRectangle(
    Pen pen,
    int x,
    int y,
    int width,
    int height
)

如果数据(也就是矩形的Heigh)的差异不是很大,例如12个月的降雨量为:

92.2, 92.8,92.7,……,

用上面的函数作出的图形时,由于隐含的浮点到整型的转换,导致图形显示时,矩形的高度都为92!这不符合实际情况!

建议

1)用

public void DrawRectangle(
    Pen pen,
    float x,
    float y,
    float width,
    float height
)

来作图

2)在保持图形大小不变的前提下,根据降雨量最大值和最小值,适当地“压缩”Y轴的坐标范围。例如Y轴只画出降雨量50~100。

更多追问追答
追问
那我改如何改呢?
追答

1)将数组Count改为float类型

float[] Count;

2)从数据库选出数据后,给数组Count赋值

Count[i]= Convert.ToSingle(dt.Table[i].Rows[0][0].ToString())*100.0 / total();

3)作图时

g.FillRectangle( myBrush, x, 340-Count[i] *26 / 10,  20.0,  count[i]*26/10 );
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式