qt繪制函數(shù)圖像

在這里插入圖片描述

二次函數(shù)
在這里插入圖片描述
在這里插入圖片描述
  1. 準備畫布局劲,填充畫布顏色為白色
//頭文件中
private:
    Ui::Widget *ui;
    QImage image;
    QString line;
//實現(xiàn)文件中
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    line="";
    ui->setupUi(this);
    image=QImage(1200,1200,QImage::Format_RGB32);
    QColor backColor=qRgb(255,255,255);
    image.fill(backColor);
}

  1. 準備畫家,先畫出坐標軸
public:
    explicit Widget(QWidget *parent = nullptr);
    void Paint();
    void Connext();

//實現(xiàn)
void Widget::Paint()
{
    QPainter painter(&image);
    painter.setRenderHint(QPainter::Antialiasing,true);
    int pointx=450,pointy=450;
    int width=800,height=800;
    painter.drawRect(5,5,1200-10,1200-10);
    painter.drawLine(pointx-width/2+50,pointy,pointx+width/2+100,pointy);
    painter.drawLine(pointx,pointy-height/2,pointx,pointy+height/2);
}

  1. 描點屈藐,把點存儲在隊列中

<font color=pink>描點時,橫坐標根據(jù)你所給的表達式給出熙尉,比如如果是對數(shù)函數(shù)联逻,從0.1開始往后給出10個左右橫坐標〖焯担縱坐標需要根據(jù)表達式計算包归,我們只需要把表達式里面的x換成具體的值,就可以計算出縱坐標铅歼。</font>

QList<QPointF>points=creatPoints(line);     //creatPoints()是一個函數(shù)公壤,
返回需要的數(shù)據(jù)點,line就是輸入的表達式椎椰。

//具體實現(xiàn)還有怎么計算數(shù)據(jù)點有些復雜厦幅,這里略過,若想嘗試的話慨飘,可以自己自定義一些數(shù)據(jù)點确憨。

4.根據(jù)所給點繪制曲線
這里要用到QPainterPath類译荞,顧名思義,它可以根據(jù)你所給的點休弃,一段一段的繪制曲線吞歼。

  QList<QPointF>points=creatPoints(line);
      QPainterPath path(points[0]);
      for(int i=0;i<points.size()-1;++i)
      {
          QPointF sp=points[i];
          QPointF ep=points[i+1];
          QPointF c1=QPointF((sp.x()+ep.x())/2,(sp.y()+ep.y())/2);
          QPointF c2=c2;
          path.cubicTo(c1,c2,ep);           //這個函數(shù)就是用來繪制曲線的。
          //第一個參數(shù)和第二個參數(shù)都是控制點(百度貝賽爾曲線)
          //第三個參數(shù)endpoint塔猾,是這小段曲線的終點
          //起點是按照你的隊列順序的前一個節(jié)點
          //這里將c1和c2設置成一樣的是因為這小段曲線凹凸性是一樣的篙骡。

      }
              QPainter painter(&image);
              painter.setRenderHint(QPainter::Antialiasing,true);       //防鋸齒
              painter.setPen(QPen(Qt::black,10));
              painter.translate(450,450);
              painter.drawPath(path);

這樣大致思路就出來了。
如果覺得這個圖像還過得去想要源碼的可以留言(^U^)ノ~YO


在這里插入圖片描述
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丈甸,一起剝皮案震驚了整個濱河市糯俗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌老虫,老刑警劉巖叶骨,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異祈匙,居然都是意外死亡忽刽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門夺欲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跪帝,“玉大人,你說我怎么就攤上這事些阅∩〗#” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵市埋,是天一觀的道長黎泣。 經(jīng)常有香客問我,道長缤谎,這世上最難降的妖魔是什么抒倚? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮坷澡,結果婚禮上托呕,老公的妹妹穿的比我還像新娘。我一直安慰自己频敛,他們只是感情好项郊,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斟赚,像睡著了一般着降。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拗军,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天鹊碍,我揣著相機與錄音厌殉,去河邊找鬼。 笑死侈咕,一個胖子當著我的面吹牛公罕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耀销,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼楼眷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了熊尉?” 一聲冷哼從身側響起罐柳,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狰住,沒想到半個月后张吉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡催植,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年肮蛹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片创南。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡伦忠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稿辙,到底是詐尸還是另有隱情昆码,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布邻储,位于F島的核電站赋咽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吨娜。R本人自食惡果不足惜脓匿,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望萌壳。 院中可真熱鬧,春花似錦日月、人聲如沸袱瓮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尺借。三九已至,卻和暖如春精拟,著一層夾襖步出監(jiān)牢的瞬間燎斩,已是汗流浹背虱歪。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留栅表,地道東北人笋鄙。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像怪瓶,于是被迫代替她去往敵國和親萧落。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354