📄 make_raster.cc
字号:
/********************************************************//* filename: make_raster.cc *//* *//********************************************************//* programmed by: Oliver Wagner *//* last change: 22-08-95 *//********************************************************/#include <stdio.h>#include <stdlib.h>#include <math.h>//#include <string.h>#include <time.h>#include "daten.h"#include "vektor.h"#include "matrix.h"int Dim, i, j, k, Index, Punktanzahl = 1, Punkt, Punktstep = 1;Daten_Typ Typ;char Name[30], So = 'z';FILE *File;time_t timer;main (int argc, char *argv[]){ if (argc < 2) { printf ("Dim,\n"); printf ("Dim_1-Punktanzahl,Dim_1-Anfang,Dim_1-Ende,Dim_1-Jitter(0-1),\n"); printf ("...\n"); printf ("Dim_n-Punktanzahl,Dim_n-Anfang,Dim_n-Ende,Dim_n-Jitter(0-1),\n"); printf ("Name\n"); exit (0); } srand ((unsigned) time (&timer)); Index = 1; sscanf (argv[Index++], "%d", &Dim); So = (char) ((int) So + 1 - Dim); if (Dim > 0) { DVektor Jitter (Dim, 0, NULL), Schritt (Dim, 0, NULL), Anfang (Dim, 0, NULL), Ende (Dim, 0, NULL); IVektor Anzahl (Dim, NULL); double Buffer; for (i = 0; i < Dim; i++) { sscanf (argv[Index++], "%d", &Anzahl[i]); sscanf (argv[Index++], "%lf", &Anfang[i]); sscanf (argv[Index++], "%lf", &Ende[i]); sscanf (argv[Index++], "%lf", &Jitter[i]); Schritt[i] = (Ende[i] - Anfang[i]) / Anzahl[i]; Jitter[i] = Jitter[i] * Schritt[i]; Punktanzahl *= Anzahl[i]; } sscanf (argv[Index++], "%s", Name); File = fopen (Name, "w"); fprintf (File, "normal\n"); /* Punkte berechnen */ DVektorArray Punkte (Dim, Punktanzahl, NULL); for (i = 0; i < Dim; i++) { Punkt = 0; do { Buffer = (Schritt[i] - Jitter[i]) / 2; for (j = 0; j < Anzahl[i]; j++) { Punkte[Punkt][i] = Buffer + Jitter[i] * (((double) rand ()) / (double) MAXINT); Buffer += Schritt[i]; Punkt = (Punkt + Punktstep) % (Punktanzahl - 1); if (Punkt == 0) break; } } while (Punkt != 0); Punkte[Punktanzahl - 1][i] = Buffer + Jitter[i] * (((double) rand ()) / (double) MAXINT); Punktstep *= Anzahl[i]; } /* Jetzt die Punkte in die Datei schreiben */ fprintf (File, "%d %d %d\n", Punktanzahl, Dim, 0); for (i = 0; i < Dim; i++) { fprintf (File, "%c ", So); So = (char) (((int) So) + 1); } fprintf (File, "\n"); for (i = 0; i < Punktanzahl; i++) { for (j = 0; j < Dim; j++) fprintf (File, "%f ", Punkte[i][j]); fprintf (File, "\n"); } } else { /* Nichts tun */ exit (0); } fclose (File);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -