diagonalbucketorder.java

来自「Sunflow是一个照片级的渲染系统」· Java 代码 · 共 26 行

JAVA
26
字号
package org.sunflow.core.bucket;

import org.sunflow.core.BucketOrder;

public class DiagonalBucketOrder implements BucketOrder {
    public int[] getBucketSequence(int nbw, int nbh) {
        int[] coords = new int[2 * nbw * nbh];
        int x = 0, y = 0, nx = 1, ny = 0;
        for (int i = 0; i < nbw * nbh; i++) {
            coords[2 * i + 0] = x;
            coords[2 * i + 1] = y;
            do {
                if (y == ny) {
                    y = 0;
                    x = nx;
                    ny++;
                    nx++;
                } else {
                    x--;
                    y++;
                }
            } while ((y >= nbh || x >= nbw) && i != (nbw * nbh - 1));
        }
        return coords;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?