废话不说,直接上图
我想绘制如上所示的图,我该怎么办???
下面给出思路:
1,画坐标系 drawLine函数搞定 (有人问我画带箭头的线如何搞定,你在端点再画两条斜着的线不就可以了)
2 画标度 通过drawLine画出那些短线,通过drawText画出数字,具体的位置可以通过循环来做
3 直方图 很明显,都是一系列的矩形组成的,通过drawRect函数就可以实现了
4 离散点 通过drawEclipse函数 画出一个个小的圆就可以了
5 坐标映射 把你想要画的数据通过各种方法映射到你的坐标系上面去,这点学过小学数学的人都应该会明白 (这点是至关重要的),就是在画线和画矩形的时候把相关参数和实际的参数关联起来!
下面给出实例代码,大家可以参考一下
QImage image; image.load("d:/res.jpg"); QPainter painter(&image); //通过以上代码已经获得了句柄,可以进行操作了 //绘制直方图 painter.drawLine(50,400,350,400); painter.drawLine(50,400,50,100-20); painter.drawLine(50,100-20,45,105-20); //上箭头 painter.drawLine(50,100-20,55,105-20); //上箭头 painter.drawLine(345,395,350,400); //右箭头 painter.drawLine(345,405,350,400); //右箭头 painter.drawText(QPoint(330,420),"column diagram"); int virable = 400; for(int i=-1;i<10;i++){
//绘制向上坐标 painter.drawLine(50,virable,53,virable); painter.drawText(QPoint(40,virable),QString: