definiciones de clases de fluctuación de fase y la muestra de ensayo

Jitter muestreo de la prueba de algoritmos, gráficos pequeños no ven ninguna diferencia significativa entre el código y el gráfico de prueba o en el bar.

declaración de la clase:

#pragma vez 
#ifndef __JITTERED_HEADER__ 
#define __JITTERED_HEADER__ 

# include "sampler.h" 

clase con jitter: Sampler pública { 
público: 
	jitter (); 
	~ Jitter (); 
	Jitter (const número entero Samps); 
	Jitter (Samps enteros const, conjuntos enteros const); 
	Jitter (const jitter y ji); 
	Jitter operador & = (const jitter y ji); 
	Sampler * clone () const virtual; 
	generate_samples virtual void (); 
}; 
#terminara si

implementación de la clase:

# include "pch.h" 
# include "jittered.h" 

jitter :: jitter (): Sampler () { 
	generate_samples (); 
} 

Jitter :: ~ jitter () {} 

jitter :: jitter (Samps enteros const): Sampler (Samps) { 
	generate_samples (); 
} 

Jitter :: jitter (Samps enteros const, conjuntos enteros const): Sampler (Samps, conjuntos) { 
	generate_samples (); 
} 

Jitter :: fluctuación de fase (jitter y const ji): Sampler (ji) { 
	generate_samples (); 
} 

Fluctuación de fase y fluctuación de fase operador :: = (const con jitter y ji) { 
	si (este y ji ==) 
		de retorno * esto; 
	Sampler :: operator = (ji); 
	* volver esto; 
} 
 
Sampler * jitter :: clone () const {
	Return new jitter (* this); 
}

void jitter :: generate_samples () { 
	número entero n = (número entero) std :: sqrt ((LHaga) nsamples); 
	para (número entero p = 0; p <nsets; p ++) { 
		for (número entero i = 0; i <n; i ++) 
			para (número entero j = 0; j <n; j ++) { 
				Point2 sp ((j + random_ldouble () ) / n, (i + random_ldouble ()) / n); //抖动算法核心
				samples.push_back (sp); 
			} 
	} 
} 

Los resultados del ensayo gráfico:

Supongo que te gusta

Origin www.cnblogs.com/dalgleish/p/12602759.html
Recomendado
Clasificación