24 #include "ElementiGrafici.h" 26 #include <Q3PaintDeviceMetrics> 28 void ElementiGrafici::PuntiSegnale(){
32 sprintf(stringa,
"Mostro i %d Punti Coord %d %d/%d",PuntiMax,CoordX,CoordY,NVar);
33 IfDisegna = DIS_SEGNALE;
41 void ElementiGrafici::PuntiSommaSegnali(){
43 ErrPrima->message(QString(
"Aprire un file prima"));
47 sprintf(stringa,
"Somma di tutti i segnali\n");
48 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
49 IfDisegna = DIS_PUNTI;
54 void ElementiGrafici::PuntiDistribuzione(){
56 ErrPrima->message(QString(
"Aprire un file prima"));
60 sprintf(stringa,
"Distribuzione per %d NBin di %d Punti",NBin,NElMax-NElMin);
61 DIS_ADD_TYPE(IfDisegna,DIS_MOMENTI);
68 void ElementiGrafici::PuntiSpettro(){
70 ErrPrima->message(QString(
"Aprire un file prima"));
75 sprintf(stringa,
"Spettro da %d a %d di %d Punti",NElMin,NElMax,NElMax-NElMin);
76 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
77 IfDisegna = DIS_PUNTI;
82 void ElementiGrafici::PuntiNormalizza(){
84 ErrPrima->message(QString(
"Aprire un file prima"));
90 sprintf(stringa,
"Normalizzazione del segnale da %d campioni",Campioni);
91 IfDisegna = DIS_PUNTI;
96 void ElementiGrafici::PuntiModulo(){
98 ErrPrima->message(QString(
"Aprire un file prima"));
105 sprintf(stringa,
"Modulo del segnale da %d campioni",Campioni);
106 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
107 IfDisegna = DIS_PUNTI;
112 void ElementiGrafici::PuntiRadice(){
114 ErrPrima->message(QString(
"Aprire un file prima"));
120 sprintf(stringa,
"Radice di %d NBin",PuntiMax);
121 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
122 IfDisegna = DIS_PUNTI;
127 void ElementiGrafici::PuntiAutocor(){
129 ErrPrima->message(QString(
"Aprire un file prima"));
133 sprintf(stringa,
"Autocorrelazione da %d a %d di %d Punti",NElMin,NElMax,NElMax-NElMin);
134 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
135 IfDisegna = DIS_PUNTI;
140 void ElementiGrafici::PuntiSum(){
142 ErrPrima->message(QString(
"Aprire un file prima"));
146 sprintf(stringa,
"Somma %lf da %d a %d di %d Punti",Resp,NElMin,NElMax,NElMax-NElMin);
152 void ElementiGrafici::PuntiInterRett(){
154 ErrPrima->message(QString(
"Aprire un file prima"));
159 sprintf(stringa,
"Interpolazione lineare da %d a %d di %d Punti",NElMin,NElMax,NElMax-NElMin);
160 DIS_ADD_TYPE(IfDisegna,DIS_RETTA);
161 DIS_REM_TYPE(IfDisegna,DIS_GAUSS);
162 DIS_REM_TYPE(IfDisegna,DIS_PARABOLA);
163 DIS_REM_TYPE(IfDisegna,DIS_EXP);
164 DIS_ADD_TYPE(IfDisegna,DIS_BLU);
168 void ElementiGrafici::PuntiInterExp(){
170 ErrPrima->message(QString(
"Aprire un file prima"));
175 sprintf(stringa,
"Interpolazione lineare da %d a %d di %d Punti",NElMin,NElMax,NElMax-NElMin);
176 DIS_REM_TYPE(IfDisegna,DIS_RETTA);
177 DIS_REM_TYPE(IfDisegna,DIS_GAUSS);
178 DIS_REM_TYPE(IfDisegna,DIS_PARABOLA);
179 DIS_ADD_TYPE(IfDisegna,DIS_EXP);
180 DIS_ADD_TYPE(IfDisegna,DIS_BLU);
184 void ElementiGrafici::PuntiParabola(){
186 ErrPrima->message(QString(
"Aprire un file prima"));
190 printf(
"%.2g + %.2g x + %.2g x^2",p1.
a0,p1.
a1,p1.
a2);
192 sprintf(stringa,
"Interpolazione parabolica da %d a %d di %d Punti",NElMin,NElMax,NElMax-NElMin);
193 DIS_REM_TYPE(IfDisegna,DIS_RETTA);
194 DIS_REM_TYPE(IfDisegna,DIS_GAUSS);
195 DIS_ADD_TYPE(IfDisegna,DIS_PARABOLA);
196 DIS_REM_TYPE(IfDisegna,DIS_EXP);
197 DIS_ADD_TYPE(IfDisegna,DIS_BLU);
201 void ElementiGrafici::PuntiInterGauss(){
203 ErrPrima->message(QString(
"Aprire un file prima"));
208 sprintf(stringa,
"Interpolazione gaussiana da %d a %d di %d Punti",NElMin,NElMax,NElMax-NElMin);
209 DIS_REM_TYPE(IfDisegna,DIS_RETTA);
210 DIS_ADD_TYPE(IfDisegna,DIS_GAUSS);
211 DIS_REM_TYPE(IfDisegna,DIS_PARABOLA);
212 DIS_REM_TYPE(IfDisegna,DIS_EXP);
213 DIS_ADD_TYPE(IfDisegna,DIS_BLU);
217 void ElementiGrafici::PuntiMediaMob(){
219 ErrPrima->message(QString(
"Aprire un file prima"));
223 sprintf(stringa,
"MediaMobile di %d Punti divisi in %d Parti",PuntiMax,NMobile);
225 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
226 IfDisegna = DIS_PUNTI;
232 void ElementiGrafici::PuntiCorrelaADue(){
234 ErrPrima->message(QString(
"Aprire un file prima"));
239 sprintf(stringa,
"MediaMobile di %d Punti divisi in %d Parti",PuntiMax,NCorrela);
240 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
241 IfDisegna = DIS_PUNTI;
246 void ElementiGrafici::PuntiAutosimilarita(){
248 ErrPrima->message(QString(
"Aprire un file prima"));
253 sprintf(stringa,
"Autosimilarita di %d Punti su %d Potenze",
NMax,PuntiMax);
254 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
255 IfDisegna = DIS_PUNTI;
260 void ElementiGrafici::PuntiIntegrale(){
262 ErrPrima->message(QString(
"Aprire un file prima"));
270 sprintf(stringa,
"Integrale su %d Punti= %lf",PuntiMax,Int);
271 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
272 IfDisegna = DIS_PUNTI;
277 void ElementiGrafici::PuntiDerivata(){
279 ErrPrima->message(QString(
"Aprire un file prima"));
284 PuntiMax = NElMax - NElMin - 2;
285 sprintf(stringa,
"Derivata su %d Punti",PuntiMax);
286 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
287 IfDisegna = DIS_PUNTI;
292 void ElementiGrafici::PuntiVarie(){
294 ErrPrima->message(QString(
"Aprire un file prima"));
300 PuntiMax = NElMax - NElMin -2;
303 double Volume =
NMax/(32.*32.*32.);
304 for(
int n=0;n<PuntiMax;n++){
307 sprintf(stringa,
"Surface tension %lf",Integr);
308 DIS_ADD_TYPE(IfDisegna,DIS_PUNTI);
309 IfDisegna = DIS_PUNTI;
314 void ElementiGrafici::StampaFile(){
316 InfoStato(
"Stampando...");
317 Stampante->setOutputFileName(QString(
nomeSalva));
318 if(Stampante->setup(
this))
319 if(!paint.begin(Stampante) )
322 DisegnaPunti(&paint);
323 InfoStato(
"Stampato");
326 void ElementiGrafici::PuntaExt(
double **ExtSt,
int NVar){
int SpettroSegnale(int NElMin, int NElMax)
Calculate the spectrum.
double a1
a0 + a1 x + a2 x^2
void SommaSegnali()
Sums all the yCoordinates.
void ImpNCorrela(int n)
Set the bins for the point correlation.
int ElabSegnale(int NElMin, int NElMax)
Do a generic elaboration.
int NMax
Number of points per array.
MOMENTI InterGaussSegnale(int CoordY, int NElMin, int NElMax, int LogLog)
Computes a Gaussian fit.
int AutocorSegnale(int NElMin, int NElMax)
Autocorrelation of the signal.
double a2
a0 + a1 x + a2 x^2
RETTA InterRettSegnale(int CoordY, int NElMin, int NElMax, int LogLog)
Computes a liner fit.
char * nomeSalva
Name of the output file.
void Punta(int n)
Points to a different column.
void ImpNElMin(int n)
Set the minimum elaboration point.
void ImpNVisMax(int n)
Set the maximum visualisation point.
void ImpCoordY(int Ext)
Set the column for the y array.
void VarieSegnale()
Points the function Elab to the square gradient, probably not working.
PARABOLA ParabolaSegnale(int CoordY, int NElMin, int NElMax, int LogLog)
Computes a parabolic fit.
void ImpNVisMin(int n)
Set the minimum visualisation point.
void ModuloSegnale()
Points the function Elab to the module, probably not working.
bool RadiceSegnale()
Transforms the signal into its square root.
double IntSegnale()
Numerical integration of the signal.
MOMENTI DistrGaussSegnale(int ElMin, int ElMax, int IfNorm)
Tests a gaussian distribution of the signal.
double a0
a0 + a1 x + a2 x^2
void AutosimilaritaSegnale(int)
Selfsimilarity.
void ImpNElMax(int n)
Set the maximum elaboration point.
void DerivataSegnale()
Points the function Elab to the derivative, probably not working.
int CorrelaADuePunti(int dist)
To point correlation at a distance dist.
double SumSegnale(int CoordY, int NElMin, int NElMax)
Sum the values between ElMin and ElMax.
int NormalizzaSegnale(int NElMin, int NElMax)
Normalize the signal.
RETTA InterExpSegnale(int CoordY, int NElMin, int NElMax, int LogLog)
Computes a exponential fit.
void ImpNMobile(int n)
Set the bins for the running average.
VarDatFile * v1
Class for the file handle.
int MediaMobSegnale(int)
Running average.