Невозможно вызвать mult (float) для типа float примитива - PullRequest
0 голосов
/ 21 сентября 2018

Я работаю над простой гравитационной программой в Processing.Моя программа берет частицы и притягивает их друг к другу на основе формулы гравитации.К сожалению, как только я пытаюсь умножить силу в направлении на PVector.mult(), я получаю ошибку в заголовке:

Невозможно вызвать mult (float) для float примитивного типа.

Вот мой код метода.G определено в другом месте.

public float distance(Particle other) {
    return location.sub(other.location).mag();
}

public PVector direction(Particle other) {
    return location.sub(other.location).normalize();
}

public void gravity(Particle other) {
    float grav = (G*((mass * other.mass)/pow(distance(other), 2)));
    if(distance(other) != 0) {
    acceleration.add(distance(other).mult(grav));
}

Почему я не могу пропустить поплавок там, где он должен быть?

1 Ответ

0 голосов
/ 21 сентября 2018

Давайте разберем эту строку и разделим ее на несколько шагов:

acceleration.add(distance(other).mult(grav));

Вот моя попытка разбить ее на несколько строк:

float grav = 42;
float distanceFromOther = distance(other);
float multipliedValue = distanceFromOther.mult(grav);
acceleration.add(multipliedValue);

Надеюсь, это делает это более очевидным, чтопроисходит: вы пытаетесь вызвать mult() со значением float, что не сработает.Вам нужно вызвать mult для PVector или другого класса, который содержит функцию mult().

...