⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog.c

📁 frasr200的win 版本源码(18.21),使用make文件,使用的vc版本较低,在我的环境下编译有问题! 很不错的分形程序代码!
💻 C
📖 第 1 页 / 共 5 页
字号:
BOOL FAR PASCAL Select3D(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{

    int i;
    char temp[80];

    switch (message) {

        case WM_INITDIALOG:
            win_answers[0] = preview;
            win_answers[1] = showbox;
            win_answers[2] = SPHERE;
            win_answers[3] = previewfactor;
            win_answers[4] = glassestype;
            win_answers[5] = FILLTYPE+1;
            win_answers[6] = RAY;
            win_answers[7] = BRIEF;
            win_answers[8] = Targa_Out;
            CheckDlgButton(hDlg, ID_PREVIEW, win_answers[0]);
            CheckDlgButton(hDlg, ID_SHOWBOX, win_answers[1]);
            CheckDlgButton(hDlg, ID_SPHERICAL, win_answers[2]);
            CheckDlgButton(hDlg, ID_RAYB, win_answers[7]);
/*
            CheckDlgButton(hDlg, ID_TARGA, win_answers[8]);
*/
            sprintf(temp,"%d",win_answers[3]);
	    SetDlgItemText(hDlg, ID_PREVIEWFACTOR, temp);
            CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
                ID_STEREO1+win_answers[4]);
            CheckRadioButton(hDlg, ID_FILL1, ID_FILL8,
                ID_FILL1+win_answers[5]);
            CheckRadioButton(hDlg, ID_RAY0, ID_RAY6,
                ID_RAY0+win_answers[6]);
            check_writefile(ray_name,".ray");
	    SetDlgItemText(hDlg, ID_RAYN, ray_name);
            return (TRUE);

        case WM_COMMAND:
            switch (wParam) {

                case IDOK:
                    if(win_answers[2] != SPHERE) {
                        SPHERE = win_answers[2];
                        set_3d_defaults();
                        }
                    preview = win_answers[0];
                    showbox = win_answers[1];
                    SPHERE  = win_answers[2];
                    RAY     = win_answers[6];
                    BRIEF   = win_answers[7];
                    Targa_Out = win_answers[8];
                    GetDlgItemText(hDlg, ID_PREVIEWFACTOR, temp, 10);
                    GetDlgItemText(hDlg, ID_RAYN, temp, 30);
                    strcpy(ray_name, temp);
                    previewfactor = atoi(temp);
                    glassestype = win_answers[4];
                    FILLTYPE = win_answers[5]-1;
                    win_3dspherical = SPHERE;
                    if(previewfactor < 8)
                       previewfactor = 8;
                    if(previewfactor > 128)
                       previewfactor = 128;
                    if(glassestype < 0)
                       glassestype = 0;
                    if(glassestype > 3)
                       glassestype = 3;
                    whichimage = 0;
                    if(glassestype)
                       whichimage = 1;
                    if (Targa_Out && overlay3d)
                       Targa_Overlay = 1;
                    EndDialog(hDlg, 1);
                    break;
                    
                case ID_PREVIEW:
                case ID_SHOWBOX:
                case ID_SPHERICAL:
                    i = wParam - ID_PREVIEW;
                    win_answers[i] = 1 - win_answers[i];
                    CheckDlgButton(hDlg, ID_PREVIEW + i, win_answers[i]);
                    break;

                case ID_FILL1:
                case ID_FILL2:
                case ID_FILL3:
                case ID_FILL4:
                case ID_FILL5:
                case ID_FILL6:
                case ID_FILL7:
                case ID_FILL8:
                    i = wParam - ID_FILL1;
                    win_answers[5] = i;
                    CheckRadioButton(hDlg, ID_FILL1, ID_FILL8,
                        ID_FILL1+win_answers[5]);
                    break;

                case ID_STEREO1:
                case ID_STEREO2:
                case ID_STEREO3:
                case ID_STEREO4:
                    i = wParam - ID_STEREO1;
                    win_answers[4] = i;
                    CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
                        ID_STEREO1+win_answers[4]);
                    break;

                case ID_RAY0:
                case ID_RAY1:
                case ID_RAY2:
                case ID_RAY3:
                case ID_RAY4:
                case ID_RAY5:
                case ID_RAY6:
                    i = wParam - ID_RAY0;
                    win_answers[6] = i;
                    CheckRadioButton(hDlg, ID_RAY0, ID_RAY6,
                        ID_RAY0+win_answers[6]);
                    break;

                case ID_RAYB:
                    win_answers[7] = 1 - win_answers[7];
                    CheckDlgButton(hDlg, ID_RAYB, win_answers[7]);
                    break;

                case ID_TARGA:
                    win_answers[8] = 1 - win_answers[8];
                    CheckDlgButton(hDlg, ID_TARGA, win_answers[8]);
                    break;

                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                }
        
        }
    return (FALSE);
}

BOOL FAR PASCAL Select3DPlanar(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{

    int i;
    char temp[80];

    switch (message) {

        case WM_INITDIALOG:
            win_answers[0] = XROT;
            win_answers[1] = YROT;
            win_answers[2] = ZROT;
            win_answers[3] = XSCALE;
            win_answers[4] = YSCALE;
            win_answers[5] = ROUGH;
            win_answers[6] = WATERLINE;
            win_answers[7] = ZVIEWER;
            win_answers[8] = XSHIFT;
            win_answers[9] = YSHIFT;
            win_answers[10] = xtrans;
            win_answers[11] = ytrans;
            win_answers[12] = transparent[0];
            win_answers[13] = transparent[1];
            win_answers[14] = RANDOMIZE;
            for (i = 0; i < 15; i++) {
                sprintf(temp,"%d", win_answers[i]);
                SetDlgItemText(hDlg, ID_ANS1+i,temp);
                }
            return (TRUE);

        case WM_COMMAND:
            switch (wParam) {

                case IDOK:
                    for (i = 0; i < 15; i++) {
                        GetDlgItemText(hDlg, ID_ANS1+i, temp, 20);
                        win_answers[i] = atof(temp);
                        }
                    XROT =           win_answers[0];
                    YROT =           win_answers[1];
                    ZROT =           win_answers[2];
                    XSCALE =         win_answers[3];
                    YSCALE =         win_answers[4];
                    ROUGH =          win_answers[5];
                    WATERLINE =      win_answers[6];
                    ZVIEWER =        win_answers[7];
                    XSHIFT =         win_answers[8];
                    YSHIFT =         win_answers[9];
                    xtrans =         win_answers[10];
                    ytrans =         win_answers[11];
                    transparent[0] = win_answers[12];
                    transparent[1] = win_answers[13];
                    RANDOMIZE =      win_answers[14];
                    if (RANDOMIZE >= 7) RANDOMIZE = 7;
                    if (RANDOMIZE <= 0) RANDOMIZE = 0;
                    EndDialog(hDlg, 1);
                    break;
                  
                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                }
        
        }
    return (FALSE);
}


BOOL FAR PASCAL SelectIFS3D(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{

    int i, numanswers;
    char temp[80];

    numanswers = 5;

    switch (message) {

        case WM_INITDIALOG:
            win_answers[0] = XROT;
            win_answers[1] = YROT;
            win_answers[2] = ZROT;
            win_answers[3] = ZVIEWER;
            win_answers[4] = XSHIFT;
            win_answers[5] = YSHIFT;
            win_answers[6] = glassestype;
            for (i = 0; i <= numanswers; i++) {
                sprintf(temp,"%d", win_answers[i]);
                SetDlgItemText(hDlg, ID_ANS1+i,temp);
                }
            CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
                ID_STEREO1+win_answers[6]);
            return (TRUE);

        case WM_COMMAND:
            switch (wParam) {

                case ID_STEREO1:
                case ID_STEREO2:
                case ID_STEREO3:
                case ID_STEREO4:
                    i = wParam - ID_STEREO1;
                    win_answers[6] = i;
                    CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
                        ID_STEREO1+win_answers[6]);
                    break;

                case IDOK:
                    for (i = 0; i <= numanswers; i++) {
                        GetDlgItemText(hDlg, ID_ANS1+i, temp, 20);
                        win_answers[i] = atof(temp);
                        }
                    XROT =           win_answers[0];
                    YROT =           win_answers[1];
                    ZROT =           win_answers[2];
                    ZVIEWER =        win_answers[3];
                    XSHIFT =         win_answers[4];
                    YSHIFT =         win_answers[5];
                    glassestype =    win_answers[6];
                    EndDialog(hDlg, 1);
                    break;
                  
                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                }
        
        }
    return (FALSE);
}

char win_funnyglasses_map_name[41];

BOOL FAR PASCAL SelectFunnyGlasses(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{

    int i, numanswers;
    char temp[80];

    numanswers = 7;

    switch (message) {

        case WM_INITDIALOG:

	    /* defaults */
            if(ZVIEWER == 0)
               ZVIEWER = 150;
            if(eyeseparation == 0) {
               if(fractype==IFS3D || fractype==LLORENZ3D || fractype==FPLORENZ3D) {
     	          eyeseparation =  2;
	          xadjust       = -2;
                  }
               else {
	          eyeseparation =  3;
	          xadjust       =  0;
                  }
               }

            win_funnyglasses_map_name[0] = 0;
            if(glassestype == 1)
                strcpy(win_funnyglasses_map_name,"glasses1.map");
            else if(glassestype == 2) {
                if(FILLTYPE == -1)
     	            strcpy(win_funnyglasses_map_name,"grid.map");
                else
	            strcpy(win_funnyglasses_map_name,"glasses2.map");
                }

            win_answers[0] = eyeseparation;
            win_answers[1] = xadjust;
            win_answers[2] = red_crop_left;
            win_answers[3] = red_crop_right;
            win_answers[4] = blue_crop_left;
            win_answers[5] = blue_crop_right;
            win_answers[6] = red_bright;
            win_answers[7] = blue_bright;
            for (i = 0; i < numanswers+1;i++) {
                sprintf(temp,"%d", win_answers[i]);
                SetDlgItemText(hDlg, ID_ANS1+i,temp);
                }
            SetDlgItemText(hDlg, ID_ANS9,win_funnyglasses_map_name);
            return (TRUE);

        case WM_COMMAND:
            switch (wParam) {

                case IDOK:
                    for (i = 0; i < numanswers+1; i++) {
                        GetDlgItemText(hDlg, ID_ANS1+i, temp, 20);
                        win_answers[i] = atof(temp);
                        }
                    GetDlgItemText(hDlg, ID_ANS9, temp, 40);
                    strcpy(win_funnyglasses_map_name, temp);
                    eyeseparation   =  win_answers[0];
                    xadjust         =  win_answers[1];
                    red_crop_left   =  win_answers[2];
                    red_crop_right  =  win_answers[3];
                    blue_crop_left  =  win_answers[4];
                    blue_crop_right =  win_answers[5];
                    red_bright      =  win_answers[6];
                    blue_bright     =  win_answers[7];
                    EndDialog(hDlg, 1);
                    break;
                  
                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                }
        
        }
    return (FALSE);
}

BOOL FAR PASCAL SelectLightSource(hDlg, message, wParam, lParam)
HWND hDlg;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -