日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java柏林算法,柏林噪音 - 我做错了什么?

發布時間:2024/9/19 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java柏林算法,柏林噪音 - 我做错了什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我剛剛開始世界一代,我一直在尋找perlin noise的教程,但遺憾的是谷歌上沒有很多東西可以找到 . 我遵循教程的最后幾天,但我無法讓我的代碼工作 .

這是我的Java方法 .

private static double[][] createNoise(int xn, int yn, int sps) {

int m = yn * sps;

int n = xn * sps;

double[][] u = new double[yn + 1][];

double[][] v = new double[yn + 1][];

double[][] x = new double[m][];

double[][] y = new double[m][];

double[][] z = new double[m][];

for (int i = 0; i < m; i++) {

x[i] = new double[n];

y[i] = new double[n];

z[i] = new double[n];

}

for (int i = 0; i < yn + 1; i++) {

u[i] = new double[xn + 1];

v[i] = new double[xn + 1];

}

for (int i = 0; i < xn + 1; i++) {

for (int j = 0; j < yn + 1; j++) {

u[i][j] = nextRandom();

v[i][j] = nextRandom();

}

}

double hx = xn / (n - 1);

double hy = yn / (m - 1);

for (int i = 0; i < m; i++) {

for (int j = 0; j < n; j++) {

x[i][j] = hx * j;

y[i][j] = hy * i;

}

}

for (int i = 0; i < m; i++) {

for (int j = 0; j < n; j++) {

int xc = (int)x[i][j];

int yc = (int)y[i][j];

if (x[i][j] % 1 == 0 && x[i][j] != 0 ) xc = xc - 1;

if (y[i][j] % 1 == 0 && y[i][j] != 0 ) yc = yc - 1;

double xr = x[i][j] - xc;

double yr = y[i][j] - yc;

double s11[] = {-xr, -yr};

double s21[] = {-xr, 1 - yr};

double s22[] = {1 - xr, 1 - yr};

double s12[] = {1 - xr, -yr};

double q11 = s11[0] * u[yc][xc] + s11[1] * v[yc][xc];

double q21 = s21[0] * u[yc + 1][xc] + s21[1] * v[yc + 1][xc];

double q22 = s22[0] * u[yc + 1][xc + 1] + s22[1] * v[yc + 1][xc + 1];

double q12 = s12[0] * u[yc][xc + 1] + s12[1] * v[yc][xc + 1];

z[i][j] = lerp(x[i][j], y[i][j], xc, xc + 1, yc, yc + 1, q11, q12, q21, q22);

}

}

return z;

}

該方法遺留下來的高度圖看起來像這樣

如您所見,第一行/列正在運行,但之后算法似乎失敗了 . 我確定了方法

nextRandom();

返回介于-1和1之間的浮點值 .

非常感謝!

總結

以上是生活随笔為你收集整理的Java柏林算法,柏林噪音 - 我做错了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。