Редактирование: Chain v3

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

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

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
[[Виртуальная лаборатория]] > [[Динамика одномерного кристалла]] > [[Цепь - версии]] > [[Chain v3]] <HR>
+
[[ТМ|Кафедра ТМ]] > [[Программирование]] > [[Программирование и моделирование в Интернет|Интернет]] > [[JavaScript-программирование|JavaScript]] > [[JavaScript - Цепь|Цепь]] > '''Chain v3''' <HR>
 +
 
 +
<addscript src=Chain_v3_release/>
 +
<htmlet nocache="yes">Chain_v3_TM</htmlet>
  
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tcvetkov/Chain/Chain_v3_release/Chain_v3_release.html |width=1030 |height=440 |border=0 }}
 
  
 
Скачать программу: [[Медиа:Chain_v3_release.zip|Chain_v3_release.zip]]
 
Скачать программу: [[Медиа:Chain_v3_release.zip|Chain_v3_release.zip]]
Строка 9: Строка 11:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
function MainChain(canvas, vCanvas) {
 
function MainChain(canvas, vCanvas) {
 
 
     // Предварительные установки
 
     // Предварительные установки
  
Строка 15: Строка 16:
 
     var vContext = vCanvas.getContext("2d");// на context происходит рисование
 
     var vContext = vCanvas.getContext("2d");// на context происходит рисование
  
     var Pi = 3.1415926;                  // число "пи"
+
     const Pi = 3.1415926;                  // число "пи"
  
     var m0 = 1;                          // масштаб массы
+
     const m0 = 1;                          // масштаб массы
     var T0 = 1;                          // масштаб времени (период колебаний исходной системы)
+
     const T0 = 1;                          // масштаб времени (период колебаний исходной системы)
     var a0 = 1;                          // масштаб расстояния (диаметр шара)
+
     const a0 = 1;                          // масштаб расстояния (диаметр шара)
  
     var k0 = 2 * Pi / T0;                // масштаб частоты
+
     const k0 = 2 * Pi / T0;                // масштаб частоты
     var C0 = m0 * k0 * k0;                // масштаб жесткости
+
     const C0 = m0 * k0 * k0;                // масштаб жесткости
  
 
     // *** Задание физических параметров ***
 
     // *** Задание физических параметров ***
  
     var m = 1 * m0;                    // масса
+
     const m = 1 * m0;                    // масса
     var C = 1 * C0;                    // жесткость
+
     const C = 1 * C0;                    // жесткость
     var numStart = 24;                    // начальное количество частиц
+
     const numStart = 24;                    // начальное количество частиц
  
 
     // *** Задание вычислительных параметров ***
 
     // *** Задание вычислительных параметров ***
  
     var fps = 50;                    // frames per second - число кадров в секунду (качечтво отображения)
+
     const fps = 50;                    // frames per second - число кадров в секунду (качечтво отображения)
     var spf = 10;                  // steps per frame - число шагов интегрирования между кадрами (скорость расчета)
+
     const spf = 10;                  // steps per frame - число шагов интегрирования между кадрами (скорость расчета)
     var dt  = 0.4 * T0 / fps;          // шаг интегрирования (качество расчета)
+
     const dt  = 0.4 * T0 / fps;          // шаг интегрирования (качество расчета)
  
 
     // Выполнение программы
 
     // Выполнение программы
  
     var scale = canvas.height / a0;      // масштабный коэффициент для перехода от расчетных к экранным координатам
+
     const scale = canvas.height / a0;      // масштабный коэффициент для перехода от расчетных к экранным координатам
     var wScale = canvas.width;     // ширина окна в экранных координатах
+
     const wScale = canvas.width;     // ширина окна в экранных координатах
     var hScale = canvas.height;     // высота окна в экранных координатах
+
     const hScale = canvas.height;     // высота окна в экранных координатах
     var w = wScale / scale;         // ширина окна в расчетных координатах
+
     const w = wScale / scale;         // ширина окна в расчетных координатах
     var h = hScale / scale;         // высота окна в расчетных координатах
+
     const h = hScale / scale;         // высота окна в расчетных координатах
     var chainHeightScale = hScale/2;      // высота положения цепи в экранных координатах
+
     const chainHeightScale = hScale/2;      // высота положения цепи в экранных координатах
  
 
     // константы для графика скорости
 
     // константы для графика скорости
     var vWScale = vCanvas.width;          // ширина окна в экранных координатах
+
     const vWScale = vCanvas.width;          // ширина окна в экранных координатах
     var vHScale = vCanvas.height;        // высота окна в экранных координатах
+
     const vHScale = vCanvas.height;        // высота окна в экранных координатах
     var vHeightScale = vHScale/2;        // высота графика скорости в экранных координатах
+
     const vHeightScale = vHScale/2;        // высота графика скорости в экранных координатах
     var vAxisScale = vHScale * 0.4;      // масштаб оси "y" графика скорости
+
     const vAxisScale = vHScale * 0.4;      // масштаб оси "y" графика скорости
     var uvWResize = vWScale/wScale;      // пересчет ширины относительно основного окна
+
     const uvWResize = vWScale/wScale;      // пересчет ширины относительно основного окна
  
 
     // Генерорование начальных условий
 
     // Генерорование начальных условий
Строка 119: Строка 120:
 
     function physics(){
 
     function physics(){
 
         for (var s=1; s<=spf; s++) {// то, что происходит каждый шаг времени
 
         for (var s=1; s<=spf; s++) {// то, что происходит каждый шаг времени
             for (var i=1; i<particles.length-1; i++) {
+
             for (var i=1; i<particles.length-1; i++){
 
                 particles[i].fu = C*(particles[i+1].uu - 2*particles[i].uu + particles[i-1].uu);
 
                 particles[i].fu = C*(particles[i+1].uu - 2*particles[i].uu + particles[i-1].uu);
 
                 particles[i].vu += particles[i].fu / m * dt;
 
                 particles[i].vu += particles[i].fu / m * dt;
Строка 218: Строка 219:
 
</div>
 
</div>
  
[[Category: Виртуальная лаборатория]]
 
 
[[Category: Программирование]]
 
[[Category: Программирование]]
 +
[[Category: JavaScript]]
Вам запрещено изменять защиту статьи. 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:

Отменить | Справка по редактированию  (в новом окне)
Источник — «http://tm.spbstu.ru/Chain_v3»