Редактирование: Нелинейные колебания груза с вынуждающей силой программа
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 2: | Строка 2: | ||
Скачать программу: [[Медиа:SpringNoLine.rar|SpringNoLine.rar]] | Скачать программу: [[Медиа:SpringNoLine.rar|SpringNoLine.rar]] | ||
− | + | Код программы: | |
− | |||
− | |||
− | |||
window.addEventListener("load", Main_Spring, true); | window.addEventListener("load", Main_Spring, true); | ||
Строка 38: | Строка 35: | ||
// *** Задание вычислительных параметров *** | // *** Задание вычислительных параметров *** | ||
− | var fps = 300; | + | var fps = 300; // frames per second - число кадров в секунду (качечтво отображения) |
− | var spf = 100; | + | var spf = 100; // steps per frame - число шагов интегрирования между кадрами (edtkbxbdftn скорость расчета) |
− | var dt = 0.05 * T0 / fps; | + | var dt = 0.05 * T0 / fps; // шаг интегрирования (качество расчета) |
− | var steps = 0; | + | var steps = 0; // количество шагов интегрирования |
function setM(new_m) {m = new_m * m0;} | function setM(new_m) {m = new_m * m0;} | ||
function setC(new_C) {C = new_C * C0;} | function setC(new_C) {C = new_C * C0;} | ||
− | + | function setC1(new_C1) {C1 = new_C1 * C0 * 0.067;} | |
function setB(new_B) {B = new_B * B0;} | function setB(new_B) {B = new_B * B0;} | ||
− | + | function setF(new_F) {F = new_F * 40;} | |
slider_m.oninput = function() {number_m.value = slider_m.value; setM(slider_m.value);}; | slider_m.oninput = function() {number_m.value = slider_m.value; setM(slider_m.value);}; | ||
Строка 53: | Строка 50: | ||
slider_C.oninput = function() {number_C.value = slider_C.value; setC(slider_C.value);}; | slider_C.oninput = function() {number_C.value = slider_C.value; setC(slider_C.value);}; | ||
number_C.oninput = function() {slider_C.value = number_C.value; setC(number_C.value);}; | number_C.oninput = function() {slider_C.value = number_C.value; setC(number_C.value);}; | ||
− | + | slider_C1.oninput = function() {number_C1.value = slider_C1.value; setC1(slider_C1.value);}; | |
number_C1.oninput = function() {slider_C1.value = number_C1.value; setC1(number_C1.value);}; | number_C1.oninput = function() {slider_C1.value = number_C1.value; setC1(number_C1.value);}; | ||
slider_B.oninput = function() {number_B.value = slider_B.value; setB(slider_B.value);}; | slider_B.oninput = function() {number_B.value = slider_B.value; setB(slider_B.value);}; | ||
number_B.oninput = function() {slider_B.value = number_B.value; setB(number_B.value);}; | number_B.oninput = function() {slider_B.value = number_B.value; setB(number_B.value);}; | ||
− | + | slider_F.oninput = function() {number_F.value = slider_F.value; setF(slider_F.value);}; | |
number_F.oninput = function() {slider_F.value = number_F.value; setF(number_F.value);}; | number_F.oninput = function() {slider_F.value = number_F.value; setF(number_F.value);}; | ||
− | var count = true; | + | var count = true; // проводить ли расчет системы |
var v = 0; // скорость тела | var v = 0; // скорость тела | ||
− | var rw = canvas.width / 30; | + | var rw = canvas.width / 30; var rh = canvas.height / 1.5; |
− | + | var x0 = 15 * rw - rw / 2; var y0 = rh / 1.33 - rh / 2; | |
− | var x0 = 15 * rw - rw / 2; | ||
− | |||
// параметры пружины | // параметры пружины |