怎样用QT画直角坐标系

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 18:21:26
怎样用QT画直角坐标系
xVOVW苃uYDjlZu*rq NiKZa[()- 4?'H }=s =zrd"FQ1Ϳ򬾒3^=hr3F/ "ۣ '$sJNO]V!c0"KJp2OKI^Ǝ'oU[K`m *% i̛Gor̹C24'&.ԎT+>jVnkvoY?feKYNu1 prUEc2З[!*Gv=V! ڇgk )z<·&G{8-U@/]~_&US ZʚO+fsO 8;B4(MMp@!$8rr~sVOAo3$8W$$R)2L[ɳ-kb͑z>'Aϡ(գx|Tcg G8s 4{쾮B #mCb6+'ђ#[eo8i$JhP'G%p8vQß9än ?| `B~X؞'5K)uI_H㣧?vVk }M'gxb <%KnGR(rPVKJHԗ E0xW覀攍n=Pk'4AG;DSw=%19NhHgβ$HaY)Sgg>IKJ㔯=2)p3^ zs ̥0BR xQϒيb*V,$?YZ9 -ol*0"p1(U"(&&H#WV0Ɣ>](5ꪵPp^l@AiwGi9yeٟLU_ \wwg5Rj+ة_fxRj/r(4ࢿ$cT tfv_q{nڌTxh{;HJ

怎样用QT画直角坐标系
怎样用QT画直角坐标系

怎样用QT画直角坐标系
重载QWidget的painEvent()函数.
在PainEvent函数中可以使用translate,rotate等函数转换painter的坐标系,使绘图变得跟简单.
然后用lineTo()函数画线.如果你想画一个三角型箭头的话就最好用drawPath().
可以用drawText()来画出文字.
差不多久这样.

自己画就是用 画笔画,很麻烦,需要写大量的代码
可以使用一些 写好的类库 比如qwt等

zuobiaozhou.h
#ifndef ZUOBIAOZHOU_H
#define ZUOBIAOZHOU_H
#include
class zuobiaozhou : public QWidget
{
Q_OBJECT

public:
zuobiaozhou(QWidget *p...

全部展开

zuobiaozhou.h
#ifndef ZUOBIAOZHOU_H
#define ZUOBIAOZHOU_H
#include
class zuobiaozhou : public QWidget
{
Q_OBJECT

public:
zuobiaozhou(QWidget *parent = 0);
~zuobiaozhou();
protected:
void paintEvent(QPaintEvent *);
};
#endif // ZUOBIAOZHOU_H
main.cpp
#include
#include "zuobiaozhou.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
zuobiaozhou w;
w.showMaximized(); //窗口默认最大化

return a.exec();
}
zuobiaozhou.cpp
#include "zuobiaozhou.h"
zuobiaozhou::zuobiaozhou(QWidget *parent)
: QWidget(parent)
{
setWindowTitle(tr("zuobiaozhou")); //设置标题栏标题
resize(400,300); //设置窗口初始大小
}
zuobiaozhou::~zuobiaozhou()
{

}
void zuobiaozhou::paintEvent(QPaintEvent *)
{
int side = qMin(width(), height()); //创建窗口宽高参数
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true); //开启抗锯齿
painter.translate(width() / 2, height() / 2); //坐标系统平移变换
painter.scale(side / 300.0, side / 300.0); //坐标系统比例变换,使绘制的图形随窗口的放大而放大
painter.scale(1, -1); //Y轴向上翻转,翻转成正常平面直角坐标系
painter.setPen(QPen(Qt::black, height() / 600));
painter.drawLine(-2000,0,2000,0);
painter.drawLine(0,1500,0,-1500);
}

收起