我无法计算表观风速。不知道出了什么问题。公式很简单,但计算起来并不准确

I cannot calculate apparent wind speed. Have no Idea what's wrong. Formula is easy, but it doesn't happen to calculate it wright

公式应具有并输出 = 12,5,输入参数为:风速 = 10,真风角 = 60,船速 = 4 在我的例子中,它输出:13.458620941319543

public class Direction extends Boat {
    private double trueWindAngle = 60;
    private double trueWindSpeed = 10;
    private double apparentWindAngle;
    private double apparentWindSpeed;
    private double rudPosition = 0;     // rudder position
    private double boatSpeed = 4;
    private double sailPosition = 0;    // sheet position


public void setApparentWindSpeed() {
    this.apparentWindSpeed = ApparentWindSpeed(getTrueWindSpeed(), getBoatSpeed(), trueWindAngle);
}




// W = true wind speed
// V = boat speed
// lambda = true pointing angle in degrees (0 = upwind, 180 = downwind)
//SOURCE: https://en.wikipedia.org/wiki/Apparent_wind

public double ApparentWindSpeed(double W, double V, double lambda){
    return  Math.sqrt(Math.pow(W,2) + Math.pow(V,2) + 2*W*V*Math.cos(lambda));
}

转换时效果很好!

public class Direction extends Boat {
private double trueWindAngle = 60;
private double trueWindSpeed = 10;
private double apparentWindAngle;
private double apparentWindSpeed;
private double rudPosition = 0;     // rudder position
private double boatSpeed = 4;
private double sailPosition = 0;    // sheet position

// W = true wind speed
// V = boat speed
// lambda = true pointing angle in degrees (0 = upwind, 180 = downwind)
//SOURCE: https://en.wikipedia.org/wiki/Apparent_wind
 public void setApparentWindSpeed() {
    this.apparentWindSpeed = ApparentWindSpeed(getTrueWindSpeed(), getBoatSpeed(), Math.toRadians(trueWindAngle));
}

public double ApparentWindSpeed(double W, double V, double lambda){
    return  Math.sqrt(Math.pow(W,2) + Math.pow(V,2) + 2*W*V*Math.cos(lambda));
}