Добро пожаловать в Переполнение стека. Вы действительно можете использовать списки для хранения ускорения, скорости и положения:
import matplotlib.pyplot as plt
g=9.8
coeff=0.0001
tstep=0.9
acc=0
vel=0
pos=30000
acceleration=[acc]
velocity=[vel]
position=[pos]
while pos>=0:
acc=g-coeff*(vel**2)
acceleration.append(acc)
pos=pos-vel*tstep
position.append(pos)
vel=vel+acc*tstep
velocity.append(vel)
plt.plot(velocity)
plt.xlabel('time [s]')
plt.ylabel('velocity [m/s]')
В приведенном выше примере кода я умножил квадрат скорости на произвольный коэффициент, так как я не знал, какое значение вы хотите использовать для массы м.
Несколько замечаний:
Надеюсь, это поможет.
Хорошо в чистом JavaScript мои взгляды состоят в том, что необходимо было бы сначала сопоставить их в наборе.
var divs = document.getElementsByTagName("div");
//divs now contain each and every div element on the page
var selectionDiv = document.getElementById("MySecondDiv");
Так в основном с selectionDiv выполняют итерации через набор для нахождения его индекса, и затем очевидно-1 = предыдущие +1 = затем в границах
for(var i = 0; i < divs.length;i++)
{
if(divs[i] == selectionDiv)
{
var previous = divs[i - 1];
var next = divs[i + 1];
}
}
знать, хотя, поскольку я говорю, что дополнительная логика потребовалась бы, чтобы проверять, что Вы в границах т.е. Вы не в конце или запускаетесь набора.
Это также будет означать, что говорят, что у Вас есть отделение, которому вложили дочернее отделение. Следующее отделение не было бы одноуровневым элементом, но ребенком, Поэтому если Вы только хотите одноуровневые элементы на том же уровне, как целевое отделение затем определенно использует nextSibling проверка свойство tagName .
используйте nextSibling
и previousSibling
свойства:
<div id="foo1"></div>
<div id="foo2"></div>
<div id="foo3"></div>
document.getElementById('foo2').nextSibling; // #foo3
document.getElementById('foo2').previousSibling; // #foo1
Однако в некоторых браузерах (я забываю, который) также необходимо проверить на узлы комментария и пробел:
var div = document.getElementById('foo2');
var nextSibling = div.nextSibling;
while(nextSibling && nextSibling.nodeType != 1) {
nextSibling = nextSibling.nextSibling
}
Библиотеки как jQuery обрабатывают все эти проверки перекрестного браузера на Вас из поля.
Действительно зависит от полной структуры Вашего документа.
, Если Вы имеете:
<div></div>
<div></div>
<div></div>
это может быть столь же просто как пересекающий посредством использования
mydiv.nextSibling;
mydiv.previousSibling;
Однако, если 'следующее' отделение могло бы быть где-нибудь в документе, Вам будет нужно более сложное решение. Вы могли попробовать что-то с помощью
document.getElementsByTagName("div");
и пробежав их для получения, где Вы хотите так или иначе.
, Если бы Вы делаете большой сложный пересекающий DOM, такой как это, я рекомендовал бы изучить библиотеку, такую как jQuery.