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



公式应具有并输出= 12,5,输入的参数为:风速= 10,true Wind角= 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));
}

convert!

时运行良好
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));
}

最新更新