Re: [問題] 關於用c或是c++畫訊號波形圖

看板C_and_CPP (C/C++)作者 (我愛ASM)時間19年前 (2006/01/13 01:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《kyohung (哀..可悲...)》之銘言: : 我想請問各位的大大,我現在想透過c或是c++來寫一個畫簡單波形圖的程式 : 我已經把讀檔和把裡面有用的資訊轉成txt的部份寫好,現在我必須寫一個 : 能夠在讀入txt資料後畫出一張波形圖來,但是其中我可以設定橫軸的時間刻度 : 我不知道這該參考哪些函式,請各位大大給我一些建議,謝謝!! 產生一個process執行gnuplot,使用popen建立一個對gnuplot的指令通道 c的部份只是單純產生一對數值給暫存檔,依據這暫存檔畫出圖形 下面這範例產生3d點的順序有點問題,只是在這做個示範..... [原碼取自gnuplot使用手冊] #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <math.h> using namespace std; #define PANIC(a) do { perror(a);\ if (temp) unlink (temp);\ exit(1);\ }while(0); int main() { char *temp; FILE *command,*data; double x,y,f; int ix; if((temp = tmpnam((char*)0))==0) PANIC("tmpnam failed"); if(mkfifo(temp, S_IRUSR | S_IWUSR)!=0) PANIC("mkfifo failed"); command = popen("gnuplot","w"); fprintf(command,"splot \"%s\" with lines\n",temp);fflush(command); data = fopen(temp,"w"); for(ix=-35 ; ix<35 ; ix++) { for(int iy=-35;iy<35;iy++) { x=ix/10.0; y=iy/10.0; f=sin(3*x+4*y); fprintf(data,"%f %f %f\n",x,y,f); } } fclose(data); fprintf(stderr,"press enter to continue...");fflush(stderr); getchar(); fclose(command); unlink(temp); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.132.23.74
文章代碼(AID): #13nf6HXk (C_and_CPP)
文章代碼(AID): #13nf6HXk (C_and_CPP)