它应该计算y轴,然后每次在不同的位置绘制一个小线段,并创建一个保龄球的轮廓。 x值永远不会改变所以它不会绘制任何东西。黑色填充圆圈就是为了确保它实际上正在绘制。
import java.util.Scanner;
public class test{
public static void main(String args[])
{
double a0 = 1.27731344;
double a1 = .85418707;
double a2 = .032282353;
double a3 = .127018447;
double a4 = (-5.1957538)*(Math.pow(10,-2));
double a5 = (6.718114)*(Math.pow(10,-3));
double a6 = (-3.61828)*(Math.pow(10,-4));
double a7 = (7.025)*(Math.pow(10,-6));
for(int i=0;i<=150;i++){
for(double x=0;x<=1;x+=(1/150)){
double x2 = x + (1/150);
double y = Math.sqrt((a0)+(a1*x)+(a2*x)+(a3*x)+(a4*x)+(a5*x)+(a6*x)+(a7*x));
StdDraw.line(x,y,x2,y);
System.out.println(x+" "+y+" "+x2);
}
}StdDraw.filledCircle(.5,.5,.25);
}
}
答案 0 :(得分:0)
行:for(double x = 0; x <= 1; x += (1 / 150))
从0.0开始迭代,以1.0结尾,并在每次迭代后向x添加0.0。
要按1 / 150
增加x,您必须将1 / 150
更改为双倍值1.0 / 150
因此for循环变为for(double x = 0; x <= 1; x += (1.0 / 150))
double var = 1.7;
var -= 0.1;
System.out.println(var);
可能会打印1.6000007
之类的内容。请在另一篇文章here中了解详情。
您应该找到另一种计算...计算的方法。底线是;总是迭代非浮点数。