home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
449a.lha
/
Plotter
/
src
/
Plotter.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-12-02
|
8KB
|
228 lines
#define MAXCHARS 500
/* Prototypes for functions defined in ram:abl.c */
char * __asm Ableiten(register __a0 char *string);
VOID __asm Umklammern(register __a0 char *string);
VOID Zusammensetzen(char *string,LONG Anzahl,char *ABL,struct Block *Start);
LONG __asm Mit_X(register __a0 struct Block *block);
VOID __asm Umklammern_2(register __a0 char *string);
LONG __asm Vereinfachung(register __a0 char *,
register __a1 char *);
char * __asm Ableitung(register __a0 struct Block *Start);
/* Prototypes for functions defined in ram:about.c */
void About(void);
/* Prototypes for functions defined in ram:berechnungsroutinen.c */
void FehlerAbfrage(VOID);
void DamageOn(void);
void DamageOff(void);
VOID __asm ZeichneFunktion(register __d0 USHORT nr,
register __d1 int Ableitung);
void Plotte(unsigned short nr,
DOUBLE xl,
DOUBLE xr,
DOUBLE yl,
DOUBLE yr,
int st,
int Ableitung);
DOUBLE FunktionsWert(unsigned short nr,
DOUBLE i,
int Ableitung);
void Verbinden(DOUBLE xr,
DOUBLE yr);
DOUBLE Max(DOUBLE a,
DOUBLE b);
DOUBLE Min(DOUBLE a,
DOUBLE b);
void chkabort(void);
VOID MemCleanup(VOID);
/* Prototypes for functions defined in ram:diskussion.c */
void discuss(char *string,DOUBLE l,DOUBLE r,int modus,unsigned short sub);
DOUBLE Nullstelle(DOUBLE l,DOUBLE r);
DOUBLE Nullstelle2(DOUBLE l,DOUBLE r);
VOID TextAusgabe(DOUBLE x,DOUBLE y,char *string);
VOID TextAusgabe2(char *string);
void __asm Laenge(register __a0 char *string,register __d0 int laenge);
VOID __asm Full_Discussion(register __d0 USHORT sub);
/* Prototypes for functions defined in ram:drucken.c */
LONG drucken(VOID);
/* Prototypes for functions defined in ram:maus.c */
void AusSchnitt(DOUBLE *x1,
DOUBLE *y1,
DOUBLE *x2,
DOUBLE *y2);
void Grenzen(char *xn,
char *yn,
char *xp,
char *yp);
void __asm Funktionseingabe(register __a0 UBYTE *string);
void Genauigkeit(void);
void TextFuerIntervall(void);
void TextFuerKonstanten(void);
/* Prototypes for functions defined in ram:plot.c */
void Pset(DOUBLE x1,
DOUBLE y1);
void DrawTo(DOUBLE x1,
DOUBLE y1);
void zeichne(void);
void MenuWahl(void);
void main(void);
void _main(char *);
int oeffne(void);
void ende(void);
void Line(DOUBLE x1,
DOUBLE y1,
DOUBLE x2,
DOUBLE y2);
void Skalierung(DOUBLE x,
DOUBLE y,
DOUBLE Wert);
void UmwandlungInIntervall(void);
void UmwandlungInKonstanten(void);
void UpdateMenuText(void);
void SetRXOffset(void);
void TastaturAbfrage(void);
void Loeschen(void);
void testtest(void);
VOID SetColor(VOID);
VOID SetNewColor(VOID);
VOID __asm ReMakeMenu(register __a0 struct Window *Window);
VOID MakeMenu(VOID);
struct IntuiText *GetNewText(char *string);
#define Abstand 15
#define RUNDEN .5001
#define RUNDEN2 .5001
#define deltah .00000005
#define deltahh .0005
#define KLEIN 0
#define GROSS 1
#define MAXLONG 2147483647.0
#define MAXPIXELY 300
#define GRENZE1 0.0002
#define GRENZE2 0.0000002
#define NONULL HUGE
#define WHICH_FLAG HUGE
#define W_FLAG_2 1.79769e+307
#define FARBE0 0
#define FARBE1 1
#define FARBE2 2
#define FARBE3 3
#define YSCREEN 256
#define PLOT_Y 223
#define ABOUT_FREEWARE "Dies ist FreeWare"
#define PLOT_CONT "Weiter"
#define PLOT_QUEST "Wirklich Ende ?"
#define PLOT_END "ENDE"
#define DISK_NULLST "Nullstellen :"
#define DISK_EXTREMST "Extremstellen :"
#define DISK_WENDEST "Wendestellen :"
#define DISK_FOR "Diskussion für das Intervall ["
#define MAUS_ENTERFUNC "Geben Sie die Funktion ein"
#define BE_ERROR "In Ihrer Formel ist ein Fehler !"
#define BE_JA "Ja"
#define BE_NEIN "Nein"
#define BE_QUEST "Soll ich unterbrechen ?"
extern APTR Konstantenstart;
extern BOOL KoordinatenKreuz_gezeichnet;
extern char AusgabeString[125];
extern char Formeleingabe[27];
extern char Formel[MAXCHARS];
extern char Hilfe[10],Ergebnis[MAXCHARS];
extern char SubMenuTitle[10][16];
extern char String1[4];
extern DOUBLE BestF,BestX;
extern double xmn,xmp,ymn,ymp,xm,ym,x0,y0;
extern int Aufrufe;
extern char flagg;
extern int GE;
extern int Groesse;
extern LONG MatheFehler;
extern LONG xx,yy;
extern LONG ypos_Diskussion;
extern LONG xpos_Diskussion;
extern SHORT Genauigkeiten[3];
extern SHORT XOffset,YOffset;
extern struct BitMap bitmap;
extern struct Block *StartBlock;
extern struct GfxBase *GfxBase;
extern struct info msgInfo;
extern struct IntuitionBase *IntuitionBase;
extern struct Konstanten kon;
extern struct Layer *layer;
extern struct LayersBase *LayersBase;
extern struct Layer_Info *layerinfo;
extern struct Library *MathIeeeDoubBasBase;
extern struct ToolBase *ToolBase;
extern struct Library *MathIeeeDoubTransBase;
extern struct NewScreen Schirm;
extern struct NewWindow Fenster,Fenster2,Fenster3;
extern struct RastPort *RastPort2;
extern struct RastPort *RastPort;
extern struct Rectangle rect;
extern struct Region *rgn,*OFlaeche;
extern struct Screen *Screen;
extern struct View *View;
extern struct ViewPort *viep;
extern struct Window *Window2;
extern struct Window *Window;
extern UBYTE MinXText[8],MaxXText[8],MinYText[8];
extern UBYTE MaxYText[8];
extern UBYTE Abgeleitet[2][MAXCHARS];
extern UBYTE Formeln[11][MAXCHARS];
extern UBYTE KonAString[20],KonBString[20];
extern UBYTE KonCString[20],KonDString[20];
extern UBYTE undo1[20],undoFormel[MAXCHARS];
extern UBYTE xmpstring[20],xmnstring[20];
extern UBYTE ympstring[20],ymnstring[20];
extern UWORD Farb1[4],Farb2[4];
extern struct Menu *Menu;
extern struct MenuItem *Item[7]; /* Zum Sichern der Zeiger */
/* Veränderungen:
22.10.89 Genauigkeit : Nur noch 3 Gadgets, Berechnungsroutinen angepaßt.
04.11.89 Diskussion angefügt, gibt nur auf dem Schirm aus.
18.11.89 Diskussion findet jetzt auch Nullstellen, die nur berühren (x^2)
19.12.89 Plotter auf Benutzung der Calc-Funktionen umgestellt
19.12.89 Diskussion : Fehler, wenn Funktion immer NULL ist behoben
23.12.89 Diskussion : Fehler, wenn Polstellen sind behoben
11.02.90 Plotter.h mit Compiler autom. erstellt.
21.02.90 Set(New)Color in C geschrieben und übersetzt. Alles mit -O comp
-> 25956 Bytes. Alle math. Funktionen laufen über New.....
Nullstellen werden jetzt recht genau bestimmt.
25.02.90 Abl.c ZW1 eingespart. Trotzdem leicht Stack-Overflow bei tan und sqr.
27.02.90 Fehler bei oeffne, der bei Auftritt eines Fehlers zum Absturz führt, beseitigt
15.07.90 Fehler in Ableitung beseitig (vertauschte f(x) und g(x) bei x^x
Ableitung mit AllocMem, SimpleMenu aus Tool.Library
03.08.90 Stringkonstanten nach Plotter.h , strcmp-Abfragen in Ableitung.c
auf SHORT * umgestellt.
*/
#undef Add
#undef Sub
#undef Div
#undef Mul
#undef Fix
#undef Flt
#undef Neg
#define Add(a,b) (a+b)
#define Sub(a,b) (a-b)
#define Mul(a,b) (a*b)
#define Div(a,b) (a/b)
#define Fix(a) ((LONG)a)
#define Flt(a) ((DOUBLE)a)
#define Neg(a) (-a)