波形圖..有在邏輯某些功能問題。我使用QPainter在邏輯上嘗試了一個波形圖。波形圖繪製完美,但有一條線繪製..任何人都可以幫助我解決這個問題。波圖(在邏輯功能的問題)在QT
//dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QtMath>
#include <QDebug>
#include <QDialog>
#include <QTGui>
#include <QtCore>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::paintEvent(QPaintEvent *e)
{
e->accept();
float scale = 40;
//boolean negativeX = true;
float width = 500;
float height = 108;
QPainter painter(this);
QPen linepen(Qt::red);
linepen.setWidth(2);
QPoint p1;
QPoint p2;
painter.setPen(linepen);
float xx, yy, dx=4, x0=width/2, y0=height/2;
//float iMax = (width - x0)/dx;
float iMax = 63;
//float iMin = negativeX ? -x0/dx : 0;
float iMin = -63;
for (int i=iMin;i<=iMax;i++) {
float x = x0+xx;
float y = y0-yy;
p1.setX(x);
p1.setY(y);
xx = dx*i;
float xscl = xx/scale;
yy = scale * qCos(3* xscl);
x = x0+xx;
y = y0-yy;
p2.setX(x);
p2.setY(y);
painter.drawLine(p1, p2);
}
}
// dialog.h
protected:
void paintEvent(QPaintEvent *e);
// main.cpp中
QApplication a(argc, argv);
Dialog w;
w.show();
我試過這一個,初始化xx和yy後,使用p1.x和p1.y將無法工作移動到p1概念..所以我使用循環迭代修改p1.x和p1.y的迭代 –
請不要對你的問題進行大規模的修改,以免使答案失效。它擊敗了SO的全部目的。如果你想做出這樣的改變,它應該是一個*新的問題,你應該在你理解了你當前的問題的答案之後再提問。已經回滾。 – paxdiablo