Редактирование: Интерактивная модель простейшей автоколебательной системы с пружиной

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 4: Строка 4:
 
Запишем уравнения движения системы :
 
Запишем уравнения движения системы :
 
::<math>
 
::<math>
m \ddot{x} = - c x + F(V - \dot{x} )  </math>  ,  где <math>m</math>  - масса грузика, <math>c</math> - жесткость пружины,<math>V</math>  - скорость конвейера, <math>\dot{x}</math> - изменение скорости тела   
+
m \ddot{x} = - c x + F(V - \dot{x} )  = 0 </math>  ,  где <math>m</math>  - масса грузика, <math>c</math> - жесткость пружины,<math>V</math>  - скорость конвейера, <math>\dot{x}</math> - изменение скорости тела   
  
 
Делаем замену переменных. <math>z = x - xo</math>, где <math>xo</math> - начальная координата тела. Затем раскладываем силу в ряд Тейлора, получаем новое уравнение :
 
Делаем замену переменных. <math>z = x - xo</math>, где <math>xo</math> - начальная координата тела. Затем раскладываем силу в ряд Тейлора, получаем новое уравнение :
Строка 21: Строка 21:
  
  
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/BondarevS/SeregaTrouble/1_7.html |width=860 |height=1800 |border=0 }}
+
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/BondarevS/1_7.html |width=860 |height=1800 |border=0 }}
  
  
Скачать [[Медиа:SeregaTrouble.rar|SeregaTrouble.rar]].
+
Скачать [[Медиа:Java.rar|Java.rar]].
  
 
<div class="mw-collapsible mw-collapsed" style="width:100%" >
 
<div class="mw-collapsible mw-collapsed" style="width:100%" >
 
'''Текст программы на языке JavaScript (разработчик [[Бондарев Сергей]]):''' <div class="mw-collapsible-content">
 
'''Текст программы на языке JavaScript (разработчик [[Бондарев Сергей]]):''' <div class="mw-collapsible-content">
Файл '''"2_7.js"'''
+
Файл '''"2_1.js"'''
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
  
Строка 41: Строка 41:
 
     const m0 = 1;                          // масштаб массы
 
     const m0 = 1;                          // масштаб массы
 
     const T0 = 1;                          // масштаб времени (период колебаний исходной системы)
 
     const T0 = 1;                          // масштаб времени (период колебаний исходной системы)
     const a0 = 1;                           // масштаб расстояния (диаметр шара)
+
     const a0 = 1;                           // масштаб расстояния (диаметр шара)
const mu = 0.4;                          // коэф. трения
 
                                         
 
  
 
     const g0 = a0 / T0 / T0;                // масштаб ускорения (ускорение, при котором за T0 будет пройдено расстояние a0)
 
     const g0 = a0 / T0 / T0;                // масштаб ускорения (ускорение, при котором за T0 будет пройдено расстояние a0)
Строка 49: Строка 47:
 
     const C0 = m0 * k0 * k0;                // масштаб жесткости
 
     const C0 = m0 * k0 * k0;                // масштаб жесткости
 
var scale1 = 0.2;
 
var scale1 = 0.2;
/* var scale2 = 0.2; */
+
var scale2 = 0.2;
 +
 
 +
 
 
     // *** Задание физических параметров ***
 
     // *** Задание физических параметров ***
 
var xShift= 0;
 
var xShift= 0;
Строка 55: Строка 55:
 
     const Nx = 15; // число шаров, помещающихся по вертикали в окно (задает размер шара относительно размера окна)
 
     const Nx = 15; // число шаров, помещающихся по вертикали в окно (задает размер шара относительно размера окна)
 
const l1 =  15*a0; // длина первой пружины
 
const l1 =  15*a0; // длина первой пружины
const lmax = 2*l1;                      // максимальное растяжение  первой пружины
+
const l2 =  5*a0; // длина второй пружины
/* const l2 =  5*a0; */ // длина второй пружины
+
var m1 = 5 * m0;  // масса первого шара
var m = 5 * m0;  // масса шара
+
var m2 = 10 * m0; // масса второго шара
//var v.x = 0;                            // скорость шара
 
var k = 1;                    // силовой коэффициент
 
var b1 = 0.1;
 
var b3 = 0.1;
 
var N = m*9.8;                          // сила трения
 
var Ftr = -mu * N ;
 
/* var m2 = 10 * m0; // масса второго шара */
 
 
     const Cwall = 10 * C0;                  // жесткость стен
 
     const Cwall = 10 * C0;                  // жесткость стен
 
     const r = 1 * a0;                    // радиус частицы в расчетных координатах
 
     const r = 1 * a0;                    // радиус частицы в расчетных координатах
var c = 100;                        // "жесткость" пружинки 1
+
var c1 = 100;                        // "жесткость" пружинки 1
/* var c2 = 100;   */                  // "жесткость" пружинки 1
+
var c2 = 100;                     // "жесткость" пружинки 1
 
var vx0 = 0 * a0/T0; //начальная скорость
 
var vx0 = 0 * a0/T0; //начальная скорость
 
var delt = 0*a0; //начальное смещение
 
var delt = 0*a0; //начальное смещение
Строка 74: Строка 67:
 
var Vmax = 0; var Mmin = 0; var Vprov = 0;
 
var Vmax = 0; var Mmin = 0; var Vprov = 0;
  
    var A = Math.sqrt((-4*b1*m*m)/(3*b3*c*c));
+
 
var Mmax= Math.max(m,10);
 
 
//*** Передача значений слайдерам и текстовым окнам***
 
//*** Передача значений слайдерам и текстовым окнам***
 
Text_delt.value  = delt;
 
Text_delt.value  = delt;
Text_m.value  = m;
+
Text_m1.value  = m1;
Text_c.value  = c;
+
//Text_m2.value  = m2;
Text_b1.value = b1;
+
Text_c1.value = c1;
Text_b3.value = b3;
+
//Text_c2.value = c2;
 
 
+
Slider_delt.min = -1;         
Slider_b1.min = -1;         
+
     Slider_delt.max = 1;
     Slider_b1.max = 1;
 
    Slider_b1.step = 0.1;
 
    Slider_b1.value = Text_b1.value; 
 
 
Slider_b3.min = -1;         
 
    Slider_b3.max = 1;
 
    Slider_b3.step = 0.1;
 
    Slider_b3.value = Text_b3.value; 
 
 
Slider_delt.min = -5;         
 
    Slider_delt.max = 5;
 
 
     Slider_delt.step = 0.1;
 
     Slider_delt.step = 0.1;
 
     Slider_delt.value = Text_delt.value;   
 
     Slider_delt.value = Text_delt.value;   
 
 
Slider_m.min = 0.1;           
+
Slider_m1.min = 0.1;           
     Slider_m.max = 10;
+
     Slider_m1.max = 10;
     Slider_m.step = 0.1;
+
     Slider_m1.step = 0.1;
     Slider_m.value = Text_m.value;  
+
     Slider_m1.value = Text_m1.value;  
 
 
     Slider_c.min = 1;   
+
//Slider_m2.min = 0.1;         
     Slider_c.max = 200;
+
    //Slider_m2.max = 10;
     Slider_c.step = 1;
+
    //Slider_m2.step = 0.1;
     Slider_c.value = Text_c.value;
+
  // Slider_m2.value = Text_m2.value;
 +
 +
//Slider_c2.min = 1;     
 +
  // Slider_c2.max = 200;
 +
  // Slider_c2.step = 1;
 +
  //Slider_c2.value = Text_c2.value;
 +
     Slider_c1.min = 1;   
 +
     Slider_c1.max = 200;
 +
     Slider_c1.step = 1;
 +
     Slider_c1.value = Text_c1.value;
 
Slider_delt.focus();
 
Slider_delt.focus();
 
 
Строка 114: Строка 104:
 
     const fps = 550;                        // frames per second - число кадров в секунду (качеcтво отображения)
 
     const fps = 550;                        // frames per second - число кадров в секунду (качеcтво отображения)
 
     const spf = 260;                        // steps per frame  - число шагов интегрирования между кадрами (скорость расчета)
 
     const spf = 260;                        // steps per frame  - число шагов интегрирования между кадрами (скорость расчета)
     const dt  = 0.1 * T0 / fps;          // шаг интегрирования  
+
     const dt  = 0.01 * T0 / fps;          // шаг интегрирования  
 
 
 
// Задание констант для рисования
 
// Задание констант для рисования
Строка 135: Строка 125:
 
b.x_ = b.x;              b.y_  = b.y;  
 
b.x_ = b.x;              b.y_  = b.y;  
 
b.fx = 0;                b.vx = 0;              // начальная скорость
 
b.fx = 0;                b.vx = 0;              // начальная скорость
b.cx = 0;               b.ax = 0;               // начальное ускорение
+
// Добавление шара 2
 +
var c = [];
 +
c.x  = l2 + l1;    c.y  = h / 2;  // расчетные координаты шара
 +
c.x_ = c.x;              c.y_  = c.y;
 +
c.fx = 0;             c.vx = 0;               // начальная скорость
 +
 
 
 
 
// центр рамки  
 
// центр рамки  
Строка 174: Строка 169:
 
         }
 
         }
 
     }
 
     }
 
 
   
 
   
 
     // функция запускается при отпускании клавиши мыши
 
     // функция запускается при отпускании клавиши мыши
Строка 191: Строка 185:
 
         b.x = (m.x + xShift)/scale;
 
         b.x = (m.x + xShift)/scale;
 
delt = b.x - l1;
 
delt = b.x - l1;
b.vx = 0;
+
b.vx = 0; c.vx = 0;  
b.ax = 0;
+
console.log(b.x);
//console.log(b.x);
 
 
Text_delt.value  = delt;
 
Text_delt.value  = delt;
 
Slider_delt.value = Text_delt.value;   
 
Slider_delt.value = Text_delt.value;   
Строка 224: Строка 217:
 
delt = Number(input);    //записываем значение начального смещения
 
delt = Number(input);    //записываем значение начального смещения
 
time = 1;
 
time = 1;
b.x = l1 + delt;  //изменение начальных координат шаров   
+
b.x = l1 + delt; c.x = l1+l2;  //изменение начальных координат шаров   
 
b.x_ = b.x;  
 
b.x_ = b.x;  
b.vx = 0; //задание начальных скоростей шаров
+
b.vx = 0; c.vx = 0; //задание начальных скоростей шаров
b.ax = 0;
 
 
Text_delt.value  = delt;
 
Text_delt.value  = delt;
 
Slider_delt.value = Text_delt.value;   
 
Slider_delt.value = Text_delt.value;   
Строка 236: Строка 228:
 
}
 
}
 
 
this.set_m = function(input)  
+
this.set_m1 = function(input)  
 
{
 
{
m = Number(input);   
+
m1 = Number(input);   
 
time = 1;
 
time = 1;
 
         context.clearRect(0, 0, w * scale, h* scale);       
 
         context.clearRect(0, 0, w * scale, h* scale);       
Строка 245: Строка 237:
 
}
 
}
 
 
this.set_c = function(input)  
+
this.set_c1 = function(input)  
 
{
 
{
c = Number(input);   
+
c1 = Number(input);   
 
time = 1;
 
time = 1;
 
       context.clearRect(0, 0, w * scale, h* scale);       
 
       context.clearRect(0, 0, w * scale, h* scale);       
Строка 255: Строка 247:
 
}
 
}
 
 
this.set_b1 = function(input)  
+
this.set_m2 = function(input)  
 
{
 
{
b1 = Number(input);   
+
m2 = Number(input);   
 
time = 1;
 
time = 1;
         context.clearRect(0, 0, w * scale, h* scale);       
+
     context.clearRect(0, 0, w * scale, h* scale);       
 
context_gr.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);       
 
context_gr.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);       
context_gr2.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);  
+
context_gr2.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);
 
}
 
}
 
 
this.set_b3 = function(input)  
+
this.set_c2 = function(input)  
{
+
{;
b3 = Number(input);   
+
c2 = Number(input);   
 
time = 1;
 
time = 1;
 
         context.clearRect(0, 0, w * scale, h* scale);       
 
         context.clearRect(0, 0, w * scale, h* scale);       
 
context_gr.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);       
 
context_gr.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);       
context_gr2.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);  
+
context_gr2.clearRect(0, 0, w1 * scale_gr, h1 * scale_gr);
 
}
 
}
 
+
 
/*this.set_scale1 = function(input)  
 
/*this.set_scale1 = function(input)  
 
{
 
{
Строка 293: Строка 285:
 
context_gr.clearRect(0, 0, w * scale, h * scale);
 
context_gr.clearRect(0, 0, w * scale, h * scale);
 
context_gr2.clearRect(0, 0, w * scale, h * scale);  
 
context_gr2.clearRect(0, 0, w * scale, h * scale);  
}*/  
+
}*/
 +
 
     // Функция, делающая spf шагов интегрирования
 
     // Функция, делающая spf шагов интегрирования
 
     function physics()
 
     function physics()
 
{     
 
{     
      b.x_ = b.x;  b.vx_= b.vx; b.ax_ = b.ax; //записываем старые координаты, скорости и ускорения
+
        b.x_ = b.x;  b.vx_= b.vx; //записываем старые координаты и скорости
//c.x_ = c.x;  c.vx_= c.vx;
+
c.x_ = c.x;  c.vx_= c.vx;
 
E_ = E;
 
E_ = E;
 +
 
for (var s = 1; s <= spf; s++)
 
for (var s = 1; s <= spf; s++)
 
{
 
{
b.ax  =  1*(-c*(b.x - l1) + b1*b.vx - b3*b.vx*b.vx*b.vx  )/m*dt; //расчет ускорения первого шара
 
//console.log(Ftr);
 
//console.log(b.vx);
 
/* c.vx  += -c2*(c.x - b.x - l2)/m2*dt; //расчет скорости второго шара */
 
b.vx += 100*b.ax*dt; //расчет скорости первого шара
 
b.x += b.vx*dt
 
/* c.x += c.vx*dt; */ //расчет координаты второго шара
 
//console.log(b.x - 2*a0)
 
/* if (b.x - 2*a0 >  w/2 - 9*a0)                              // условие на пружину сжатую.
 
{
 
b.x += 10000*b.vx*dt ;
 
console.log(b.x);
 
}                                      // расчет координаты первого шара
 
    else
 
{
 
b.vx = 0 ;
 
b.ax = 0;
 
 
 
for (var s = 1; s <= spf; s++)
+
b.vx +(c2*(-b.x + c.x - l2) - c1*(b.x - l1))/m1*dt; //расчет скорости первого шара
{
+
c.vx  += -c2*(c.x - b.x - l2)/m2*dt; //расчет скорости второго шара
b.ax 100*(-c1*(b.x - l1)+ k*b.vx  -  Ftr)/m1*dt; //расчет ускорения первого шара
+
b.x += b.vx*dt; //расчет координаты первого шара
console.log(b.x)
+
c.x += c.vx*dt; //расчет координаты второго шара
b.vx += b.ax*dt;
+
E = 0.5*(m1*b.vx*b.vx + m2*c.vx*c.vx)+0.5*c2*(c.x - b.x -l2)*(c.x - b.x -l2)+0.5*c1*(b.x-l1)*(b.x - l1); //рачсет энергии системы
b.x += b.vx*dt; */
 
/* } */
 
}
 
 
 
//console.log(b.x)
 
E = 0.5*c*(b.x-l1)*(b.x - l1); //рачсет энергии системы
 
 
//Vprov = Math.max(b.vx, c.vx);
 
//Vprov = Math.max(b.vx, c.vx);
 
//if ((Vprov) > Vmax) Vmax = b.vx;    
 
//if ((Vprov) > Vmax) Vmax = b.vx;    
 
   
 
   
 
 
 
 
+
}
 
   
 
   
 
  time = time + 1;
 
  time = time + 1;
Строка 351: Строка 322:
 
context.moveTo(b.x*scale, b.y*scale);
 
context.moveTo(b.x*scale, b.y*scale);
 
         context.lineTo(wall1.x*scale, wall1.y*scale);
 
         context.lineTo(wall1.x*scale, wall1.y*scale);
 +
// линия, соединяющая первую частицу со второй
 +
/* context.moveTo(b.x*scale, b.y*scale);
 +
         context.lineTo(c.x*scale, c.y*scale); */
 
// стенка  
 
// стенка  
 
context.moveTo(wall1.x*scale, (wall1.y + a0)*scale );
 
context.moveTo(wall1.x*scale, (wall1.y + a0)*scale );
Строка 357: Строка 331:
 
context.stroke();
 
context.stroke();
 
 
 +
// частица вторая
 +
/* context.fillStyle = "red";
 +
context.beginPath();
 +
            context.arc(c.x * scale, c.y * scale, 0.5*r * scale, 0,  2*Math.PI, false);
 +
context.fill(); */
 
//частица первая
 
//частица первая
 
context.fillStyle = 'blue';
 
context.fillStyle = 'blue';
Строка 371: Строка 350:
 
{
 
{
 
scale2 = h /5* delt;
 
scale2 = h /5* delt;
//console.log (Math.abs(b.vx_ - b.vx));
+
//Graph1(c, 'red'); //график для второго шара
if(Math.abs(b.vx_ - b.vx) > 0.00005)
+
Graph(b, 'blue'); //график для первого шара
{
 
Graph(b, 'blue'); //график для шара при положительном ускорении
 
}
 
else
 
{
 
Graph(b, 'red'); //график для шара при отрицательном ускорении
 
}
 
 
GraphAxex('black'); //оси
 
GraphAxex('black'); //оси
 
 
 
 
 
     }
 
     }
Строка 391: Строка 361:
 
function Graph(b, color)
 
function Graph(b, color)
 
     {
 
     {
        context_gr2.lineWidth = 2;
+
       
 
         context_gr.strokeStyle = color;
 
         context_gr.strokeStyle = color;
 
         context_gr.beginPath();
 
         context_gr.beginPath();
Строка 403: Строка 373:
 
function GraphAxex(color)
 
function GraphAxex(color)
 
{
 
{
context_gr2.lineWidth = 2;
 
 
context_gr.strokeStyle = color;
 
context_gr.strokeStyle = color;
 
         context_gr.beginPath();
 
         context_gr.beginPath();
Строка 419: Строка 388:
 
function Graph1(b, color)
 
function Graph1(b, color)
 
     {
 
     {
         context_gr2.lineWidth = 2;
+
          
 
         context_gr.strokeStyle = color;
 
         context_gr.strokeStyle = color;
 
         context_gr.beginPath();
 
         context_gr.beginPath();
context_gr.moveTo(time*scale2/3, (b.x-l1)*scale*2*scale2 + scale*h1/2);
+
context_gr.moveTo(time*scale2/3, (b.x-l1-l2)*scale*2*scale2 + scale*h1/2);
context_gr.lineTo( (time+1)*scale2/3, (b.x_- l1)*scale*2*scale2 + scale*h1/2);
+
context_gr.lineTo( (time+1)*scale2/3, (b.x_- l1-l2)*scale*2*scale2 + scale*h1/2);
 
context_gr.stroke();
 
context_gr.stroke();
 
context_gr.closePath();
 
context_gr.closePath();
Строка 431: Строка 400:
 
 
 
function draw_gr2() // Определение функции, рисующей второй график
 
function draw_gr2() // Определение функции, рисующей второй график
{
 
 
 
scale1 = 6* (h1*Mmax)/( c*delt*delt);
 
        scale2 = A;
 
GraphVel(b, 'blue'); //график для шара
 
//GraphVel2(b, 'red'); //график для амплитудного коэффициента для шара
 
GraphVel3(b, 'green');
 
GraphAxex2('black'); //оси
 
//console.log(A);
 
 
  
 
    }
 
 
/* function draw_gr3() // Определение функции, рисующей амплитудный график сходимости
 
 
{
 
{
 
 
var A = Math.sqrt((-4*b1)m*m/(3*b3*c*c));
+
var Mmax= Math.max(m1, m2);
scale1 = A;  
+
scale1 = 6* (h1*Mmax)/( (c1+c2)*delt*delt);  
GraphVel(b, 'yellow'); //график для первого шара
+
GraphVel(b, 'blue'); //график для первого шара
 
//GraphVel2(c, 'red'); //график для второго шара
 
//GraphVel2(c, 'red'); //график для второго шара
 
GraphAxex2('black'); //оси
 
GraphAxex2('black'); //оси
 
 
 
  
 
  
     } */
+
     }
 
 
 
 
 
function GraphVel(b, color)
 
function GraphVel(b, color)
 
     {
 
     {
 
          
 
          
context_gr2.lineWidth = 2;
+
 
         context_gr2.strokeStyle = color;
 
         context_gr2.strokeStyle = color;
 
        
 
        
Строка 477: Строка 430:
 
    function GraphVel2(b, color)
 
    function GraphVel2(b, color)
 
     {
 
     {
         context_gr2.lineWidth = 2;
+
          
 
         context_gr2.strokeStyle = color;
 
         context_gr2.strokeStyle = color;
 
        
 
        
 
context_gr2.beginPath();
 
context_gr2.beginPath();
 
 
context_gr2.moveTo((b.x-l1)*2*scale2 + scale*w1/2, b.vx*scale2 + scale*h1/2 );
+
context_gr2.moveTo((b.x-l1-l2)*2*scale1 + scale*w1/2, b.vx*scale1 + scale*h1/2 );
context_gr2.lineTo((b.x_- l1)*2*scale2 + scale*w1/2, b.vx_*scale2 + scale*h1/2);
+
context_gr2.lineTo((b.x_- l1-l2)*2*scale1 + scale*w1/2, b.vx_*scale1 + scale*h1/2);
 +
 
 
 
context_gr2.closePath();
 
context_gr2.closePath();
 
context_gr2.stroke();
 
context_gr2.stroke();
 
+
+
 
        
 
        
 
     }
 
     }
function GraphVel3(b, color)
 
 
{
 
 
//Grafic A
 
A = Math.sqrt((-4*b1*m*m)/(3*b3*c*c));
 
context_gr2.lineWidth = 1;
 
context_gr2.strokeStyle = color;
 
        console.log(A);
 
context_gr2.beginPath();
 
 
context_gr2.moveTo(1*A*Math.sin(time)+ scale*w1/2, 1*A*Math.cos(time)+ scale*h1/2);
 
context_gr2.lineTo(1*A*Math.sin(time)+ scale*w1/2, 1*A*Math.cos(time)+ scale*h1/2);
 
//context_gr2.moveTo(A*Math.sin(b.x-l1)+ scale*w1/2, A*Math.cos(b.x-l1)+ (h1/2)*scale);
 
//context_gr2.lineTo(A*Math.sin(b.x_-l1)+ scale*w1/2,A*Math.cos(b.x_-l1) + (h1/2)*scale);
 
 
context_gr2.closePath();
 
context_gr2.stroke();
 
}
 
 
 
 
function GraphAxex2(color)
 
function GraphAxex2(color)
 
{
 
{
context_gr2.lineWidth = 1;
 
 
context_gr2.strokeStyle = color;
 
context_gr2.strokeStyle = color;
 
         context_gr2.beginPath();
 
         context_gr2.beginPath();
Строка 530: Строка 464:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Файл '''"1_7.html"'''
+
Файл '''"1_1.html"'''
 
<syntaxhighlight lang="html5" line start="1" enclose="div">
 
<syntaxhighlight lang="html5" line start="1" enclose="div">
<!DOCTYPE html>
+
<!DOCTYPE html>
 
<html>
 
<html>
 
<head>
 
<head>
 
     <title> 2 </title>
 
     <title> 2 </title>
     <script src="2_7.js"></script>
+
     <script src="2_1.js"></script>
 
</head>
 
</head>
 
<body>
 
<body>
Строка 544: Строка 478:
 
<div>
 
<div>
 
         Координаты от времени:
 
         Координаты от времени:
         <font color="#0000FF" size="5"><B>—</B></font> Тело
+
         <font color="#0000FF" size="5"><B>—</B></font> Первое тело
 +
       
 +
      <!-- <font color="#FF0000" size="5"><B>—</B></font> Второе тело -->
 
          
 
          
 
     </div>     
 
     </div>     
Строка 551: Строка 487:
 
<div>
 
<div>
 
         Фазовая плоскость:
 
         Фазовая плоскость:
         <font color="#0000FF" size="5"><B>—</B></font> Тело
+
         <font color="#0000FF" size="5"><B>—</B></font> Первое тело
 +
       
 +
      <!-- <font color="#FF0000" size="5"><B>—</B></font> Второе тело -->
 
          
 
          
 
     </div>   
 
     </div>   
Строка 562: Строка 500:
 
             app.set_delt(this.value);
 
             app.set_delt(this.value);
 
document.getElementById('Slider_delt').value = this.value;
 
document.getElementById('Slider_delt').value = this.value;
       
+
         
 
         ">
 
         ">
 
<input type = "range"  id="Slider_delt" style="width: 100px;" oninput="app.set_delt(this.value); document.getElementById('Text_delt').value = this.value;">
 
<input type = "range"  id="Slider_delt" style="width: 100px;" oninput="app.set_delt(this.value); document.getElementById('Text_delt').value = this.value;">
Строка 570: Строка 508:
 
<!-- Масса 1 -->
 
<!-- Масса 1 -->
 
<div>
 
<div>
    m =
+
    m1 =
         <input id="Text_m" style="width: 4.2ex;" required pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)" oninput="
+
         <input id="Text_m1" style="width: 4.2ex;" required pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)" oninput="
 
             if (!this.checkValidity()) return;
 
             if (!this.checkValidity()) return;
             app.set_m(this.value);
+
             app.set_m1(this.value);
             document.getElementById('Slider_m').value = this.value;
+
             document.getElementById('Slider_m1').value = this.value;
 
         ">
 
         ">
<input type = "range"  id="Slider_m" style="width: 100px;" oninput="app.set_m(this.value); document.getElementById('Text_m').value = this.value;">
+
<input type = "range"  id="Slider_m1" style="width: 100px;" oninput="app.set_m1(this.value); document.getElementById('Text_m1').value = this.value;">
 
         </I></font>
 
         </I></font>
 
     </div>
 
     </div>
Строка 582: Строка 520:
 
<!-- Жесткость 1-->
 
<!-- Жесткость 1-->
 
<div>
 
<div>
    c =
+
    c1 =
         <input id="Text_c" style="width: 4.2ex;" required pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)" oninput="
+
         <input id="Text_c1" style="width: 4.2ex;" required pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)" oninput="
 
             if (!this.checkValidity()) return;
 
             if (!this.checkValidity()) return;
             app.set_c(this.value);
+
             app.set_c1(this.value);
             document.getElementById('Slider_c').value = this.value;
+
             document.getElementById('Slider_c1').value = this.value;
 
         ">
 
         ">
<input type = "range"  id="Slider_c" style="width: 100px;" oninput="app.set_c(this.value); document.getElementById('Text_c').value = this.value;">
+
<input type = "range"  id="Slider_c1" style="width: 100px;" oninput="app.set_c1(this.value); document.getElementById('Text_c1').value = this.value;">
        </I></font>
 
    </div>
 
<!-- Первый коэффициент -->
 
<div>
 
    b1 =
 
        <input id="Text_b1" style="width: 4.2ex;" required pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)" oninput="
 
            if (!this.checkValidity()) return;
 
            app.set_b1(this.value);
 
document.getElementById('Slider_b1').value = this.value;
 
       
 
        ">
 
<input type = "range"  id="Slider_b1" style="width: 100px;" oninput="app.set_b1(this.value); document.getElementById('Text_b1').value = this.value;">
 
 
         </I></font>
 
         </I></font>
 
     </div>
 
     </div>
 
 
<!-- Второй коэффициент -->
 
<div>
 
    b3 =
 
        <input id="Text_b3" style="width: 4.2ex;" required pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)" oninput="
 
            if (!this.checkValidity()) return;
 
            app.set_b3(this.value);
 
document.getElementById('Slider_b3').value = this.value;
 
       
 
        ">
 
<input type = "range"  id="Slider_b3" style="width: 100px;" oninput="app.set_b3(this.value); document.getElementById('Text_b3').value = this.value;">
 
        </I></font>
 
    </div>
 
 
     <script type="text/javascript"> app = new MainParticle(document.getElementById('canvasBalls'),document.getElementById('canvasGraph'),document.getElementById('canvasGraph1'));</script>
 
     <script type="text/javascript"> app = new MainParticle(document.getElementById('canvasBalls'),document.getElementById('canvasGraph'),document.getElementById('canvasGraph1'));</script>
 
</body>
 
</body>
</html>
+
</html>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div>
 
</div>
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)