我正在使用三角函数在屏幕上移动一个对象,出于某种原因," x1"可以工作但是" y1"除非值为x1 = 200;
y1 = 200;
我知道这是等式的一个问题,而不是别的。
构造
public Note_1(double x0,double y0,double x1,double y1,
double x2,double y2){
sX = x0;sY = y0;img_1x = x1;img_1y = y1;
img_2x = x2;img_2y = y2;
}
使用的方法:
public static double getAmp(double sx,double fx){
double amp = (fx-sx)/2;
return amp;
}
public static double getPeriod(double sx,double fx){
double period = 360/(fx-sx);
return period;
}
public static double getYDistplace(double sy,double fy){
double yDisplace = (sy+fy)/2;
return yDisplace;
}
计算代码:
@Override
protected void setup(){
a = getAmp(sX,img_2x);
period = getPeriod(sX,img_2x);
yDist = getYDisplace(sY,img_2y);
}
@Override
protected void calculate(){
obj.setX(obj.getX()+2);
img_x1 = obj.getX();
obj.setY(a*Math.cos(period*(img_x1+sX)/100)+yDist);
}
答案 0 :(得分:0)
Math.sin
和Math.cos
以弧度工作,但我看到你将数量除以360.也许这是涉及度和弧度的问题?