定义函数之外的方程

时间:2016-04-29 10:52:58

标签: java function variables 3d java-8

你好

我正在研究3d Grapher并且效果很好! 它就像这个y = f(x,z)一样工作。 y向上

所以现在我需要使用变量x& z 在函数中。

x & z are for loops

我想让我执行该功能并在功能之外设置y 所以我希望每次都需要输入这个功能(计划以api的形式发布)..

有没有这样做?

请记住,我需要使用x和z来定义Y

代码(位):

 public void ThreeDimensionalGraph(Location loc, double startX, double startZ, double endX, double endZ, double smoothness) {
                for (double x = startX; x < endX; x += smoothness) {
                    for (double z = startZ; z < endZ; z += smoothness) {
                        double y = x * z //i need to be able to use x and z;
                        //drawing
                    }
                }
         }

1 个答案:

答案 0 :(得分:0)

您要找的是DoubleBinaryOperator

您的方法将如下所示:

public void ThreeDimensionalGraph(Location loc, 
               double startX, double startZ, 
               double endX, double endZ, 
               double smoothness,
               DoubleBinaryOperator f) {
    for (double x = startX; x < endX; x += smoothness) {
        for (double z = startZ; z < endZ; z += smoothness) {
            double y = f.applyAsDouble(x, z);
            //drawing
        }
    }
}

你可以称之为

ThreeDimensionalGraph(loc, startX, startZ, endX, endZ, smoothness, (x,z) -> x*z);
ThreeDimensionalGraph(loc, startX, startZ, endX, endZ, smoothness, (x,z) -> Math.cos(x)*Math.cos(z));