コード例 #1
0
ファイル: WorldGen.cpp プロジェクト: haozi23333/NEWorld
	double InterpolatedNoise(double x, double y){
		int int_X, int_Y;
		double fractional_X, fractional_Y, v1, v2, v3, v4, i1, i2;
		int_X = (int)floor(x); //不要问我为毛用floor,c++默认居然TM的是向零取整的
		fractional_X = x - int_X;
		int_Y = (int)floor(y);
		fractional_Y = y - int_Y;
		v1 = SmoothedNoise(int_X, int_Y);
		v2 = SmoothedNoise(int_X + 1, int_Y);
		v3 = SmoothedNoise(int_X, int_Y + 1);
		v4 = SmoothedNoise(int_X + 1, int_Y + 1);
		i1 = Interpolate(v1, v2, fractional_X);
		i2 = Interpolate(v3, v4, fractional_X);
		return Interpolate(i1, i2, fractional_Y);
	}
コード例 #2
0
ファイル: WorldGen.cpp プロジェクト: iamgqr/NEWorld-CPP
	float InterpolatedNoise(float x, float y){
		int int_X, int_Y;
		float fractional_X, fractional_Y, v1, v2, v3, v4, i1, i2;
		int_X = int(x);
		fractional_X = x - int_X;
		int_Y = int(y);
		fractional_Y = y - int_Y;
		if (NoiseSmoothed == 1){
			v1 = SmoothedNoise((float)int_X, (float)int_Y);
			v2 = SmoothedNoise((float)int_X + 1, (float)int_Y);
			v3 = SmoothedNoise((float)int_X, (float)int_Y + 1);
			v4 = SmoothedNoise((float)int_X + 1, (float)int_Y + 1);
		}
		else{
			v1 = Noise(int_X, int_Y);
			v2 = Noise(int_X + 1, int_Y);
			v3 = Noise(int_X, int_Y + 1);
			v4 = Noise(int_X + 1, int_Y + 1);
		}
		i1 = Interpolate(v1, v2, fractional_X);
		i2 = Interpolate(v3, v4, fractional_X);
		return Interpolate(i1, i2, fractional_Y);
	}