亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 基2FFT
?? C
字號:
#include <windows.h>

#include "main.h"
#include "fft.h"

/* Declare Windows procedure  
 */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Paint Function by xinwang 
 */
void paint(HDC hdc);

/* Make the class name into a global variable */
char szClassName[ ] = "WindowsApp";
char szAppName[ ] = "resource";

/* Some GUI interface hwnd 
 */
HWND hGroupWFrm;    /* wave form */
HWND hRadioWSqu;
HWND hRadioWSin;
HWND hRadioWTri;    int  wfsel[3] = {1,0,0};

HWND hGroupWAtr;    /* wave attribute */
HWND hLaberWCyc;
HWND hEditWCyc;     int cycle = 100;
HWND hLaberWSco;
HWND hEditWSco;     int scope = 50;
HWND hLaberWPar;
HWND hEditWPar;     int parse = 0;

HWND hGroupSamp;    /* sample control */
HWND hLaberSAlt;
HWND hEditSAlt;     int smp_alter = 1;
HWND hLaberSNum;
HWND hEditSNum;     int smp_num = 512;

HWND hButtonOK;     /* Action button */

/* Userful variable */
char strtmp[] = "";
char* strstop;
int nmax;

/* wave form */
enum {SQU, SIN, TRI} wave;

/* This instance handle 
 */
HINSTANCE hInst;

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;/* This function is called by windows */
    wincl.style = CS_DBLCLKS;           /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (hThisInstance, "mico");
    wincl.hIconSm = LoadIcon (hThisInstance, "mico");
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;       /* No menu */
    wincl.cbClsExtra = 0;            /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;            /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           600,                 /* The programs width */
           500,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);
    hInst = hThisInstance;
    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}

/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    /* for message wm_paint */
    HDC hdc;
    PAINTSTRUCT ptstr;
    
    switch (message)                  /* handle the messages */
    {
        case WM_CREATE:
            /* Add display control.
             */
            hGroupWFrm = CreateWindow("BUTTON", 
                "波形",
                WS_CHILD|WS_VISIBLE|BS_GROUPBOX,
                FRX, FRY, 130, 110,
                hwnd, (HMENU)IDG_WFRM,
                hInst, NULL
                );
            hRadioWSqu = CreateWindow("BUTTON",
                "方波",
                WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
                FRX+30, FRY+25, 80, 20,
                hwnd, (HMENU)IDR_WSQU,
                hInst, NULL
                );
            hRadioWSin = CreateWindow("BUTTON",
                "正弦波",
                WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
                FRX+30, FRY+50, 80, 20,
                hwnd, (HMENU)IDR_WSIN,
                hInst, NULL
                );
            hRadioWTri = CreateWindow("BUTTON",
                "三角波",
                WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
                FRX+30, FRY+75, 80, 20,
                hwnd, (HMENU)IDR_WTRI,
                hInst, NULL
                );

            hGroupWAtr = CreateWindow("BUTTON", 
                "波形屬性",
                WS_CHILD|WS_VISIBLE|BS_GROUPBOX,
                FRX+150, FRY, 180, 110,
                hwnd, (HMENU)IDG_WATR,
                hInst, NULL
                );
            hLaberWCyc = CreateWindow("STATIC",
                "周期",
                WS_CHILD|WS_VISIBLE,
                FRX+180, FRY+25, 40, 20,
                hwnd, (HMENU)IDS_WCYC,
                hInst, NULL
                );
            hEditWCyc = CreateWindow("EDIT",
                "100",
                WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT,
                FRX+220, FRY+25, 80, 20,
                hwnd, (HMENU)IDE_WCYC,
                hInst, NULL
                );
            hLaberWSco = CreateWindow("STATIC",
                "幅值",
                WS_CHILD|WS_VISIBLE,
                FRX+180, FRY+50, 40, 20,
                hwnd, (HMENU)IDS_WSCO,
                hInst, NULL
                );
            hEditWSco = CreateWindow("EDIT",
                "50",
                WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT,
                FRX+220, FRY+50, 80, 20,
                hwnd, (HMENU)IDE_WSCO,
                hInst, NULL
                );
            hLaberWPar = CreateWindow("STATIC",
                "相位",
                WS_CHILD|WS_VISIBLE,
                FRX+180, FRY+75, 40, 20,
                hwnd, (HMENU)IDS_WPAR,
                hInst, NULL
                );
            hEditWPar = CreateWindow("EDIT",
                "0",
                WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT,
                FRX+220, FRY+75, 80, 20,
                hwnd, (HMENU)IDE_WPAR,
                hInst, NULL
                );
                
            hGroupSamp = CreateWindow("BUTTON", 
                "取樣",
                WS_CHILD|WS_VISIBLE|BS_GROUPBOX,
                FRX+350, FRY, 200, 110,
                hwnd, (HMENU)IDG_SAMP,
                hInst, NULL
                );
            hLaberSAlt = CreateWindow("STATIC",
                "取樣間隔",
                WS_CHILD|WS_VISIBLE,
                FRX+380, FRY+25, 80, 20,
                hwnd, (HMENU)IDS_SALT,
                hInst, NULL
                );
            hEditSAlt = CreateWindow("EDIT",
                "1",
                WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT,
                FRX+450, FRY+25, 80, 20,
                hwnd, (HMENU)IDE_SALT,
                hInst, NULL
                );
            hLaberSNum = CreateWindow("STATIC",
                "取樣數",
                WS_CHILD|WS_VISIBLE,
                FRX+380, FRY+50, 80, 20,
                hwnd, (HMENU)IDS_SNUM,
                hInst, NULL
                );
            hEditSNum = CreateWindow("EDIT",
                "512",
                WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT,
                FRX+450, FRY+50, 80, 20,
                hwnd, (HMENU)IDE_SNUM,
                hInst, NULL
                );
            hButtonOK = CreateWindow("BUTTON",
                "OK",
                WS_CHILD|WS_VISIBLE,
                FRX+450, FRY+80, 80, 20,
                hwnd, (HMENU)IDC_OK,
                hInst, NULL
                );
            SendMessage(hRadioWSqu, BM_SETCHECK, 1, 0);
            break;
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        case WM_PAINT:
            hdc = BeginPaint(hwnd, &ptstr);
            paint(hdc);
            EndPaint(hwnd, &ptstr);
            break;
        case WM_COMMAND:
            switch (LOWORD(wParam))
            {
                case IDR_WSQU:
                    wfsel[0]=1; wfsel[1]=0; wfsel[2]=0;
                    SendMessage(hRadioWSqu, BM_SETCHECK, wfsel[0], 0);
                    SendMessage(hRadioWSin, BM_SETCHECK, wfsel[1], 0);
                    SendMessage(hRadioWTri, BM_SETCHECK, wfsel[2], 0);
                    break;
                case IDR_WSIN:
                    wfsel[0]=0; wfsel[1]=1; wfsel[2]=0;
                    SendMessage(hRadioWSqu, BM_SETCHECK, wfsel[0], 0);
                    SendMessage(hRadioWSin, BM_SETCHECK, wfsel[1], 0);
                    SendMessage(hRadioWTri, BM_SETCHECK, wfsel[2], 0);
                    break;
                case IDR_WTRI:
                    wfsel[0]=0; wfsel[1]=0; wfsel[2]=1;
                    SendMessage(hRadioWSqu, BM_SETCHECK, wfsel[0], 0);
                    SendMessage(hRadioWSin, BM_SETCHECK, wfsel[1], 0);
                    SendMessage(hRadioWTri, BM_SETCHECK, wfsel[2], 0);
                    break;
                case IDC_OK:
                    if (wfsel[0]==1)
                        wave = SQU;
                    if (wfsel[1]==1)
                        wave = SIN;
                    if (wfsel[2]==1)
                        wave = TRI;
                        
                    nmax = GetWindowTextLength(hEditWCyc)+1;
                    GetWindowText(hEditWCyc, strtmp, nmax);
                    cycle = strtol(strtmp, &strstop, 10);
                    
                    nmax = GetWindowTextLength(hEditWSco)+1;
                    GetWindowText(hEditWSco, strtmp, nmax);
                    scope = strtol(strtmp, &strstop, 10);
                    
                    nmax = GetWindowTextLength(hEditWPar)+1;
                    GetWindowText(hEditWPar, strtmp, nmax);
                    parse = strtol(strtmp, &strstop, 10);
                    
                    nmax = GetWindowTextLength(hEditSAlt)+1;
                    GetWindowText(hEditSAlt, strtmp, nmax);
                    smp_alter = strtol(strtmp, &strstop, 10);
                    
                    nmax = GetWindowTextLength(hEditSNum)+1;
                    GetWindowText(hEditSNum, strtmp, nmax);
                    smp_num = strtol(strtmp, &strstop, 10);
                    
                    InvalidateRect(hwnd, NULL, TRUE);
                    break;
            }
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

/* paint function */
void paint(HDC hdc)
{   
    int L=0, N=1;
    while (N<smp_num)
    {
        ++L;
        N = 1<<L;
    }
    /* initialize data */
    Complex *cin  = (Complex *)malloc(sizeof(Complex)*N);
    int i;
    for (i=0; i<N; i++)
    {
        cin[i].rex = cin[i].imx = 0;
    }
    Complex *cout = (Complex *)malloc(sizeof(Complex)*N);
    float   *dis  = (float *)malloc(sizeof(float)*N);
    /* check the waveform */
    const int T  = cycle, 
              P  = parse,
              A  = scope,
              Ts = smp_alter;
    const int SN = smp_num;

    switch (wave)
    {
        case SQU:    /* square wave */
            for (i=0; i<SN; i++)
            {
                double pos = (Ts*i)%T;
                if (pos<(T/2))
                {
                    cin[i].rex = A;
                }
                else
                {
                    cin[i].rex = -A;
                }
            }
            break;
        case SIN:    /* sine wave */
            for (i=0; i<SN; i++)
            {
                cin[i].rex = A * sin(2*PI*(Ts*i)/T + P);
            }
            break;
        case TRI:    /* triangular wave */
            for (i=0; i<SN; i++)
            {
                double pos = (Ts*i)%T;
                if (pos<(T/2))
                {
                    cin[i].rex = (pos)*4*A/T-A;
                }
                else
                {
                    cin[i].rex = (T-pos)*4*A/T-A;
                }            
            }
            break;
    }
    /* calculate data */
    cfftr2(L, cin, cout);
    //dft(N, cin, cout);
    //cifftr2(L, cout, cout);
    module(cout, dis, N, 100);
    
    /* display input data */
    MoveToEx(hdc, GAX, GAY-cin[0].rex, NULL);
    for (i=0; i<N; i++)
    {
        LineTo(hdc, GAX+i, GAY-cin[i].rex);
        MoveToEx(hdc, GAX+i, GAY-cin[i].rex, NULL);
    }
    /* display output data */
    MoveToEx(hdc, GBX, GBY-dis[0], NULL);
    for (i=0; i<N; i++)
    {
        LineTo(hdc, GBX+i, GBY-dis[i]);
        MoveToEx(hdc, GBX+i, GBY-dis[i], NULL);
    }
    
    free(cin);
    free(cout);
    free(dis);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久蜜臀粉嫩 | 日韩亚洲欧美综合| av欧美精品.com| 国产一区二区伦理片| 老司机精品视频线观看86 | 人禽交欧美网站| 亚洲国产欧美一区二区三区丁香婷 | 精品午夜久久福利影院| 五月天亚洲婷婷| 日本欧洲一区二区| 午夜久久久久久久久| 三级精品在线观看| 久久国产精品第一页| 国产一区二区三区四区五区入口 | 日韩三级伦理片妻子的秘密按摩| 欧美三级电影网| 91精品一区二区三区在线观看| 欧美一区二区三级| 久久综合色一综合色88| 欧美国产精品v| 亚洲午夜久久久久久久久久久| 亚洲午夜电影网| 免费成人美女在线观看.| 天天色综合成人网| 免费在线观看不卡| 国产精品亚洲第一区在线暖暖韩国| 久久99久久99小草精品免视看| 狠狠色丁香久久婷婷综合丁香| 国产精品正在播放| 色哟哟国产精品免费观看| 色婷婷av一区二区三区软件| 91精品一区二区三区久久久久久 | 综合久久一区二区三区| 亚洲国产日日夜夜| 国产黄色精品网站| 91国偷自产一区二区三区观看| 在线91免费看| 亚洲国产岛国毛片在线| 亚洲一区二区高清| 国产精品一区二区三区99| 99re热这里只有精品免费视频| 欧美精品黑人性xxxx| 国产精品三级av在线播放| 亚洲6080在线| k8久久久一区二区三区| 欧美一区二区免费| 亚洲欧美一区二区不卡| 黑人精品欧美一区二区蜜桃 | 国产亚洲一本大道中文在线| 一区二区三区小说| 国产一区二区三区黄视频 | 日韩精品中文字幕一区| 亚洲欧美一区二区不卡| 国产综合色产在线精品| 国产美女av一区二区三区| 欧美三级日本三级少妇99| 久久精品人人做人人爽97| 无吗不卡中文字幕| 91网站视频在线观看| 精品免费一区二区三区| 亚洲成人精品在线观看| 成人一级片网址| 久久在线免费观看| 喷水一区二区三区| 欧美日韩国产精选| 亚洲香肠在线观看| 欧美视频一区二区在线观看| 亚洲日穴在线视频| 99视频一区二区| 中文字幕欧美一| av毛片久久久久**hd| 国产三级精品视频| 国产一区二区三区免费观看| 精品国产一区二区三区av性色| 亚洲成av人在线观看| 在线观看三级视频欧美| 中文字幕一区二区三| 成人18视频在线播放| 欧美韩国日本不卡| 成人av在线播放网站| 国产精品久久久久三级| 91在线云播放| 一区二区三区四区视频精品免费| 色综合久久天天| 一区二区高清免费观看影视大全 | 精品制服美女久久| 久久久www免费人成精品| 国产一区二区三区电影在线观看| 欧美成人一级视频| 国产一区 二区| 欧美激情一区二区三区| 99久久国产综合精品色伊| 亚洲欧美激情一区二区| 欧洲人成人精品| 五月激情丁香一区二区三区| 欧美电影影音先锋| 国产精品自产自拍| 亚洲免费观看高清完整版在线观看熊 | 日韩一区二区三免费高清| 久久精品国产99国产精品| 久久久久国产精品厨房| www.欧美.com| 亚洲高清不卡在线观看| 欧美mv日韩mv国产网站| 波多野结衣视频一区| 亚洲图片欧美视频| 国产精品一区二区在线看| 欧美日本不卡视频| 国产老妇另类xxxxx| 亚洲视频资源在线| 制服.丝袜.亚洲.中文.综合| 激情欧美日韩一区二区| 最新欧美精品一区二区三区| 色呦呦一区二区三区| 亚洲国产精品一区二区尤物区| www.爱久久.com| 久久久亚洲综合| 欧美三级日韩三级| 欧美性videosxxxxx| 欧美国产1区2区| 欧美日韩亚州综合| 成人禁用看黄a在线| 一区二区欧美精品| 国产日韩三级在线| 欧美精品久久久久久久多人混战 | 欧美午夜片在线看| 国产成人aaa| 美女高潮久久久| 亚洲黄一区二区三区| 久久久99精品免费观看不卡| 欧美视频一二三区| 成人午夜av影视| 国产主播一区二区三区| 亚洲国产一二三| 日韩一区日韩二区| 久久久精品影视| 欧美一区二区三区在线观看| 色婷婷国产精品| 色综合久久九月婷婷色综合| 粉嫩在线一区二区三区视频| 韩国av一区二区三区四区| 性做久久久久久久久| 亚洲免费毛片网站| 欧美韩国日本综合| 国产性色一区二区| 欧美成人video| 欧美一级高清片| 欧美一区二区三区啪啪| 欧美日韩国产一级二级| 欧美色窝79yyyycom| 日本电影欧美片| 欧美中文字幕亚洲一区二区va在线 | 亚洲成人精品一区| 性久久久久久久久久久久| 亚洲自拍另类综合| 亚洲h动漫在线| 日欧美一区二区| 看电视剧不卡顿的网站| 精品一区二区三区影院在线午夜| 麻豆精品一区二区av白丝在线| 免费成人在线观看| 久久精品国产久精国产| 久国产精品韩国三级视频| 久久国产麻豆精品| 国产成人福利片| eeuss鲁片一区二区三区| 色综合网色综合| 欧美三级日韩在线| 欧美三级日韩三级国产三级| 成人国产精品免费观看| 91网上在线视频| 制服丝袜日韩国产| 亚洲精品一区在线观看| 国产欧美一区二区精品性色超碰| 国产女人18水真多18精品一级做| 亚洲色图在线看| 日韩主播视频在线| 国产精品88av| 一本色道久久综合亚洲精品按摩| 色婷婷综合久久久中文字幕| 一本在线高清不卡dvd| 7777精品伊人久久久大香线蕉| 欧美日韩在线三区| 宅男噜噜噜66一区二区66| 久久久久久免费网| 亚洲另类一区二区| 久久av老司机精品网站导航| 成人av网站在线| 欧美日韩在线播| 国产日韩欧美精品在线| 国产精品福利影院| 亚洲bdsm女犯bdsm网站| 国产成人高清视频| 欧美精品在欧美一区二区少妇| 制服丝袜在线91| 亚洲欧美激情插| 日韩国产欧美在线播放| 国产精品一区二区x88av| 在线观看精品一区| 国产亚洲一区二区在线观看|