Редактирование: Chain v1
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | [[ | + | [[ТМ|Кафедра ТМ]] > [[Программирование]] > [[Программирование и моделирование в Интернет|Интернет]] > [[JavaScript-программирование|JavaScript]] > [[JavaScript - Цепь|Цепь]] > '''Chain v1''' <HR> |
+ | |||
+ | <addscript src=Chain_v1_release/><addscript src=jquery_min_new/><addscript src=TM_v2/><addscript src=jquery_flot/><addscript src=jquery_flot_axislabels/> | ||
+ | <htmlet nocache="yes">Chain_v1_TM</htmlet> | ||
− | |||
Скачать программу: [[Медиа:Chain_v1_release.zip|Chain_v1_release.zip]] | Скачать программу: [[Медиа:Chain_v1_release.zip|Chain_v1_release.zip]] | ||
− | + | Текст программы на языке JavaScript (разработчик [[Цветков Денис]]): <toggledisplay status=hide showtext="Показать↓" hidetext="Скрыть↑" linkstyle="font-size:default"> | |
− | |||
Файл '''"Chain_v1_release.js"''' | Файл '''"Chain_v1_release.js"''' | ||
− | < | + | <source lang="javascript" first-line="1"> |
function MainChain(canvas) { | function MainChain(canvas) { | ||
Строка 15: | Строка 16: | ||
document.oncontextmenu=function(e){return false}; // блокировка контекстного меню | document.oncontextmenu=function(e){return false}; // блокировка контекстного меню | ||
− | + | const Pi = 3.1415926; // число "пи" | |
− | + | const m0 = 1; // масштаб массы | |
− | + | const T0 = 1; // масштаб времени (период колебаний исходной системы) | |
− | + | const a0 = 1; // масштаб расстояния (диаметр шара) | |
− | + | const k0 = 2 * Pi / T0; // масштаб частоты | |
− | + | const C0 = m0 * k0 * k0; // масштаб жесткости | |
// *** Задание физических параметров *** | // *** Задание физических параметров *** | ||
− | + | const Ny = 5; // Число шаров, помещающихся по вертикали в окно (задает размер шара относительно размера окна) | |
− | + | const scale = canvas.height / Ny / a0; // масштабный коэффициент для перехода от расчетных к экранным координатам | |
− | + | const m = 1 * m0; // масса | |
− | + | const C = 1 * C0; // жесткость | |
− | + | const r = a0; // радиус частицы в расчетных координатах | |
− | + | const rScale = r * scale; // радиус частицы в экранных координатах | |
− | + | const num = 10; // количество частиц | |
− | + | const v0 = 1*a0/T0; // начальный разброс скоростей | |
// *** Задание вычислительных параметров *** | // *** Задание вычислительных параметров *** | ||
− | + | const fps = 50; // frames per second - число кадров в секунду (качечтво отображения) | |
− | + | const spf = 100; // steps per frame - число шагов интегрирования между кадрами (скорость расчета) | |
− | + | const dt = 0.045 * T0 / fps; // шаг интегрирования (качество расчета) | |
// Выполнение программы | // Выполнение программы | ||
Строка 45: | Строка 46: | ||
var w = canvas.width / scale; // ширина окна в расчетных координатах | var w = canvas.width / scale; // ширина окна в расчетных координатах | ||
var h = canvas.height / scale; // высота окна в расчетных координатах | var h = canvas.height / scale; // высота окна в расчетных координатах | ||
− | + | const pDist = w/num; // расстояние между шарами (в начальном положении) | |
− | + | const hC = h/2 * scale; // высота цепи | |
// Работа с массивом | // Работа с массивом | ||
Строка 77: | Строка 78: | ||
var sumVx2 = 0; | var sumVx2 = 0; | ||
for (var i2 = 1; i2 < num+1; i2++) sumVx2 += balls[i2].vx*balls[i2].vx; | for (var i2 = 1; i2 < num+1; i2++) sumVx2 += balls[i2].vx*balls[i2].vx; | ||
− | + | const sigma2 = sumVx2 / num; | |
− | + | const omega2 = C/m; | |
− | + | const xLabel = 2*Math.sqrt(sigma2/omega2); | |
// график | // график | ||
Строка 158: | Строка 159: | ||
} | } | ||
− | </ | + | </source> |
Файл '''"Chain_v1_release.html"''' | Файл '''"Chain_v1_release.html"''' | ||
− | < | + | <source lang="html" first-line="1"> |
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html> | <html> | ||
Строка 184: | Строка 185: | ||
</body> | </body> | ||
</html> | </html> | ||
− | </ | + | </source> |
− | </ | + | </toggledisplay> |
− | |||
− | |||
[[Category: Программирование]] | [[Category: Программирование]] | ||
+ | [[Category: JavaScript]] |