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

📄 miscovl.c

📁 frasr200的win 版本源码(18.21),使用make文件,使用的vc版本较低,在我的环境下编译有问题! 很不错的分形程序代码!
💻 C
📖 第 1 页 / 共 5 页
字号:
/*
	Overlayed odds and ends that don't fit anywhere else.
*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#ifndef XFRACT
#include <process.h>
#include <dos.h>
#include <stdarg.h>
#include <io.h>
#else
#include <varargs.h>
#endif
#include "fractint.h"
#include "fractype.h"
#include "helpdefs.h"
#include "prototyp.h"

/* routines in this module	*/

void write_batch_parms(FILE *,char *,int);
#ifndef XFRACT
static void put_parm(char *parm,...);
#else
static void put_parm();
#endif

static void put_parm_line(void);
static int getprec(double,double,double);
static void put_float(int,double,int);
static void put_filename(char *keyword,char *fname);
static void format_item(int choice,char *buf);
static int check_modekey(int curkey,int choice);
static int entcompare(VOIDCONSTPTR p1,VOIDCONSTPTR p2);
static void update_fractint_cfg(void);
extern int  debugflag;
extern int  xdots,ydots;
extern int  cpu;		/* cpu type			*/
extern int  fpu;		/* fpu type			*/
extern int  iit;		/* iit fpu?			*/
extern int  video_type;
extern int  askvideo;
extern char overwrite;		/* 1 means ok to overwrite */
extern int  fillcolor;		/* fill color: -1 = normal*/
extern int  inside;		/* inside color: 1=blue     */
extern int  outside;		/* outside color, if set    */
extern double xxmin,xxmax,yymin,yymax,xx3rd,yy3rd; /* selected screen corners */
extern double sxmin, sxmax, sx3rd, symin, symax, sy3rd; /* zoom box corners */
extern double param[];   	/* up to four parameters    */
extern int  finattract; 	/* finite attractor option  */
extern int  forcesymmetry;
extern int  LogFlag;		/* non-zero if logarithmic palettes */
extern int  rflag, rseed;
extern int  periodicitycheck;
extern int  potflag;		/* continuous potential flag */
extern int  pot16bit;		/* save 16 bit values for continuous potential */
extern double potparam[3];	/* three potential parameters*/
extern int  fractype;		/* if == 0, use Mandelbrot  */
extern BYTE usemag;
extern long delmin;
extern int  maxit;		/* try this many iterations */
extern int  invert;		/* non-zero if inversion active */
extern double inversion[];
extern int  decomp[];
extern int  distest;		/* non-zero if distance estimator   */
extern int  distestwidth;
extern int  init3d[20]; 	/* '3d=nn/nn/nn/...' values */
extern char floatflag;		/* floating-point fractals? */
extern int  usr_biomorph;
extern char FormFileName[];	/* file to find (type=)formulas in */
extern char FormName[]; 	/* Name of the Formula (if not null) */
extern char LFileName[];
extern char LName[];
extern char IFSFileName[];
extern char IFSName[];
extern int  bailout;		/* user input bailout value */
extern char useinitorbit;
extern _CMPLX initorbit;
extern int  display3d;		/* 3D display flag: 0 = OFF */
extern int  overlay3d;		/* 3D overlay flag: 0 = OFF */
extern int  loaded3d;
extern char readname[]; 	/* name of fractal input file */
extern int  showfile;		/* has file been displayed yet? */
extern int  transparent[];
extern char preview;		/* 3D preview mode flag */
extern char showbox;		/* flag to show box and vector in preview */
extern int  RANDOMIZE;		/* Color randomizing factor */
extern int  Targa_Out;  /* Selects full color with light source fills */
extern int  Ambient;		/* Darkness of shadows in light source */
extern int  haze;		/* Amount of haze to factor in in full color */
extern char light_name[];	/* Name of full color .TGA file */
extern int previewfactor;
extern int BRIEF;
extern int RAY;
extern int xtrans;
extern int ytrans;
extern int red_crop_left;
extern int red_crop_right;
extern int blue_crop_left;
extern int blue_crop_right;
extern int red_bright;
extern int blue_bright;
extern int xadjust;
extern int eyeseparation;
extern int glassestype;
extern BYTE trigndx[];
extern int rotate_lo,rotate_hi;
extern int far *ranges;
extern int rangeslen;
extern char CommandFile[80];
extern char CommandName[ITEMNAMELEN+1];
extern char far CommandComment1[57];
extern char far CommandComment2[57];
extern char far CommandComment3[57];
extern char far CommandComment4[57];
extern char usr_stdcalcmode;

extern int calc_status;
extern double	sxmin,sxmax,symin,symax,sx3rd,sy3rd;

/* Julibrot variables TIW 1/24/93 */
extern double mxmaxfp, mxminfp, mymaxfp, myminfp, originfp;
extern double depthfp, heightfp, widthfp, distfp, eyesfp;

extern int zdots; 
extern int lastorbittype, neworbittype;
extern char *juli3Doptions[];
extern int juli3Dmode;

/* viewwindows parameters */
extern int   viewwindow;
extern float viewreduction;
extern int   viewcrop;
extern float finalaspectratio;
extern int   viewxdots,viewydots;

extern int  colorstate; 	/* comments in cmdfiles */
extern int  colors;
extern int  gotrealdac;
extern int  reallyega;
extern char colorfile[];
extern int  mapset;
extern char MAP_name[];
extern BYTE dacbox[256][3];
extern char far *mapdacbox;
extern int save_release;

extern char suffix[4096];
extern char s_cantopen[];
extern char s_cantwrite[];
extern char s_cantcreate[];
extern char s_cantunderstand[];
extern char s_cantfind[];
extern int calc_status;

extern struct videoinfo far videotable[];

/* fullscreen_choice options */
#define CHOICERETURNKEY 1
#define CHOICEMENU	2
#define CHOICEHELP	4
void miscovl_overlay() { }	/* for restore_active_ovly */

extern char s_real[];
extern char s_imag[];
extern char s_mult[];
extern char s_sum[];
extern char s_zmag[];
extern char s_bof60[];
extern char s_bof61[];
extern char s_maxiter[];
extern char s_epscross[];
extern char s_startrail[];
extern char s_normal[];
extern char s_period[];
extern char *s_16bit;
extern char *s_387;
extern char *s_3d;
extern char *s_3dmode;
extern char *s_adapter;
extern char *s_afi;
extern char *s_ambient;
extern char *s_antialias;
extern char *s_askvideo;
extern char *s_autokey;
extern char *s_autokeyname;
extern char *s_background;
extern char *s_bailout;
extern char *s_batch;
extern char *s_biomorph;
extern char *s_biospalette;
extern char *s_brief;
extern char *s_bright;
extern char *s_centermag;
extern char *s_cga;
extern char *s_coarse;
extern char *s_colorps;
extern char *s_colors;
extern char *s_comport;
extern char *s_converge;
extern char *s_corecolor;
extern char *s_corners;
extern char *s_cr;
extern char *s_crlf;
extern char *s_crop;
extern char *s_cyclelimit;
extern char *s_cyclerange;
extern char *s_debug;
extern char *s_debugflag;
extern char *s_decomp;
extern char *s_distest;
extern char *s_dither;
extern char *s_ega;
extern char *s_egamono;
extern char *s_epsf;
extern char *s_exitmode;
extern char *s_exitnoask;
extern char *s_filename;
extern char *s_fillcolor;
extern char *s_filltype;
extern char *s_finattract;
extern char *s_float;
extern char *s_formulafile;
extern char *s_formulaname;
extern char *s_fpu;
extern char *s_fract001prn;
extern char *s_fullcolor;
extern char *s_function;
extern char *s_gif87a;
extern char *s_halftone;
extern char *s_haze;
extern char *s_hertz;
extern char *s_hgc;
extern char *s_ifs3d;
extern char *s_ifs;
extern char *s_ifsfile;
extern char *s_iit;
extern char *s_initorbit;
extern char *s_inside;
extern char *s_interocular;
extern char *s_invert;
extern char *s_iterincr;
extern char *s_julibrot3d;
extern char *s_julibroteyes;
extern char *s_julibrotfromto;
extern char *s_latitude;
extern char *s_lf;
extern char *s_lfile;
extern char *s_lightname;
extern char *s_lightsource;
extern char *s_linefeed;
extern char *s_lname;
extern char *s_logmap;
extern char *s_longitude;
extern char *s_makedoc;
extern char *s_makemig;
extern char *s_map;
extern char *s_maxcolorres;
extern char *s_mcga;
extern char *s_mdcorners;
extern char *s_miim;
extern char *s_mono;
extern char *s_noiit;
extern char *s_none;
extern char *s_noninterlaced;
extern char *s_numframes;
extern char *s_orbitdelay;
extern char *s_orbitname;
extern char *s_orbitsave;
extern char *s_origin;
extern char *s_outside;
extern char *s_overlay;
extern char *s_overwrite;
extern char *s_params;
extern char *s_parmfile;
extern char *s_passes;
extern char *s_periodicity;
extern char *s_perspective;
extern char *s_pi;
extern char *s_pixel;
extern char *s_pixelzoom;
extern char *s_play;
extern char *s_plotstyle;
extern char *s_potential;
extern char *s_preview;
extern char *s_printer;
extern char *s_printfile;
extern char *s_radius;
extern char *s_ramvideo;
extern char *s_randomize;
extern char *s_ranges;
extern char *s_ray;
extern char *s_record;
extern char *s_release;
extern char *s_reset;
extern char *s_rleps;
extern char *s_rotation;
extern char *s_roughness;
extern char *s_rseed;
extern char *s_savename;
extern char *s_savetime;
extern char *s_scalexyz;
extern char *s_showbox;
extern char *s_showdot;
extern char *s_smoothing;
extern char *s_solidcore;
extern char *s_sound;
extern char *s_sphere;
extern char *s_stereo;
extern char *s_symmetry;
extern char *s_targa_out;
extern char *s_targa_overlay;
extern char *s_textcolors;
extern char *s_textsafe;
extern char *s_title;
extern char *s_tplus;
extern char *s_translate;
extern char *s_transparent3d;
extern char *s_transparent;
extern char *s_type;
extern char *s_vesadetect;
extern char *s_vga;
extern char *s_video;
extern char *s_viewwindows;
extern char *s_warn;
extern char *s_waterline;
extern char *s_xaxis;
extern char *s_xyadjust;
extern char *s_xyaxis;
extern char *s_xyshift;
extern char *s_yaxis ;
char *s_yes = "yes";
char *s_no = "no";
char *s_seqs = " %s=%s";
char *s_seqd = " %s=%d";
char *s_seqdd = " %s=%d/%d";
char *s_seqddd = " %s=%d/%d/%d";
char *major[] = {"breadth","depth","walk","run"};
char *minor[] = {"left","right"};

FILE *parmfile;

#define PAR_KEY(x)  ( x < 10 ? '0' + x : 'a' - 10 + x)

#ifdef C6
#pragma optimize("e",off)  /* MSC 6.00A messes up next rtn with "e" on */
#endif
void make_batch_file()
{
   static char far hdg[]={"Save Current Parameters"};
   /** added for pieces feature **/
   double pdelx;
   double pdely;
   double pdelx2;
   double pdely2;
   unsigned int j, pxdots, pydots, xm, ym;
   double pxxmin, pxxmax, pyymin, pyymax, pxx3rd, pyy3rd;
   char vidmde[4];
   int promptnum;
   int piecespromts;
   int have3rd;
   /****/

   int i;
   char inpcommandfile[80], inpcommandname[ITEMNAMELEN + 1];
   char inpcomment1[57], inpcomment2[57], inpcomment3[57], inpcomment4[57];
   struct fullscreenvalues paramvalues[18];
   char far *choices[18];
   int gotinfile;
   char outname[81], buf[256], buf2[128];
   FILE *infile;
   FILE *fpbat=NULL;
   char colorspec[14];
   int maxcolor;
   int maxcolorindex;
   char *sptr, *sptr2;
   int oldhelpmode;

   ENTER_OVLY(OVLY_MISCOVL);
   stackscreen();
   oldhelpmode = helpmode;
   helpmode = HELPPARMFILE;

   strcpy(colorspec, "n");
   maxcolor = colors;
   if (gotrealdac && !reallyega)
   {
      --maxcolor;
/*    if (maxit < maxcolor)  remove 2 lines */
/*       maxcolor = maxit;   so that whole palette is always saved */
      if (inside > 0 && inside > maxcolor)
         maxcolor = inside;
      if (outside > 0 && outside > maxcolor)
         maxcolor = outside;
      if (distest < 0 && 0 - distest > maxcolor)
         maxcolor = 0 - distest;
      if (decomp[0] > maxcolor)
         maxcolor = decomp[0] - 1;
      if (potflag && potparam[0] >= maxcolor)
         maxcolor = potparam[0];
      if (++maxcolor > 256)
         maxcolor = 256;
      if (colorstate == 0)
      {                         /* default colors */
         if (mapdacbox)
         {

⌨️ 快捷键说明

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