Анимация кругов на основе вывода ODE-solver в Matlab [duplicate]

Используйте функцию callback() внутри успеха foo(). Попробуйте таким образом. Это просто и легко понять. & nbsp;

var lat = "";
var lon = "";
function callback(data) {
    lat = data.lat;
    lon = data.lon;
}
function getLoc() {
    var url = "http://ip-api.com/json"
    $.getJSON(url, function(data) {
        callback(data);
    });
}

getLoc();
0
задан 3abcDEF3 2 January 2015 в 20:20
поделиться

1 ответ

Во-первых, вот некоторые начальные тестовые переменные, в том числе ускорение из-за силы тяжести:

g = 9.8; %// m/s^2
v0 = 2; %// m/s
alpha = pi/6; %// Radians
h = 30; %// Start at 30 metres
t_final = 4.5; %// Seconds
t_vector = 0 : 0.01 : t_final;

t_vector в последней строке кода создает вектор точек с начального времени t = 0 до нашего времени окончания с шагом 0,01. С учетом этого наша задача состоит в том, чтобы пройти каждый из этих точек в нашем векторе и построить наш шар. Затем создадим анонимные функции для каждого x и y, чтобы сделать наш график проще:

x = @(t) v0*cos(alpha)*t;
y = @(t) h + v0*sin(alpha)*t - 0.5*g*t.^2;

. Что вы можете сделать дальше, это использовать цикл for и пройти каждое значение t_vector до t_final и нарисуйте отдельную точку. Вероятно, вы должны сделать так, чтобы мы могли видеть, как выглядит мяч:

close all;
figure; hold on;
for t = t_vector
    plot(x(t), y(t), 'b.', 'MarkerSize', 16);
    axis([0 t_final 0 h]);
    pause(0.01);
end

. Вышеприведенный код сначала закроет любые цифры, которые мы открыли, создаем новый figure и используем hold on, чтобы мы могли называть plot несколько раз и добавлять точки к графику, не стирая каждый раз. Затем для каждого момента времени мы строим местоположение на графике как синюю точку, затем делаем размер точки 16. Мы также следим за тем, чтобы ось автоматически не корректировала себя, применяя значения x ограничены между t = 0 до t = t_final. Мы также ограничиваем значения y от y = 0 до начальной начальной высоты, что в моем примере составляет 30. В каждой точке мы останавливаемся на 0,01 мс, чтобы вы могли видеть рисунок точек.

В качестве бонуса это то, что фигура выглядит как анимированная gif:

enter image description here [/g0]

2
ответ дан rayryeng 27 August 2018 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: