Редактирование: КП: Динамика лавины
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 49: | Строка 49: | ||
ctx.fillStyle="#8888ff"; | ctx.fillStyle="#8888ff"; | ||
− | + | ||
− | + | var vx = 2, vy = 2; // скорость шара | |
+ | var r = 5; // радиус шара | ||
+ | |||
var grass_height = 5; | var grass_height = 5; | ||
var mountian_length = 400; | var mountian_length = 400; | ||
+ | |||
var sin_alpha_1 = 0.5; | var sin_alpha_1 = 0.5; | ||
var cos_alpha_1 = 0.866; | var cos_alpha_1 = 0.866; | ||
+ | |||
var sun_r = 50; | var sun_r = 50; | ||
− | var | + | var rx = 0, ry = mountian_length * sin_alpha_1 / cos_alpha_1 - r; |
− | |||
− | |||
var g = 2; | var g = 2; | ||
− | var dt = 0. | + | var dt = 0.1; |
var m = 1; | var m = 1; | ||
var B = 0.06; | var B = 0.06; | ||
var B2 = 0.09; | var B2 = 0.09; | ||
− | var | + | var fy = 0; |
− | + | var fx = 0; | |
− | |||
− | |||
− | |||
− | var | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
function step() { | function step() { | ||
Строка 85: | Строка 76: | ||
function tick() { | function tick() { | ||
− | if ( | + | if (rx + r > 0 && rx - r < mountian_length && ry < (height - grass_height - mountian_length * sin_alpha_1 / cos_alpha_1) |
− | + | * rx + mountian_length * sin_alpha_1 / cos_alpha_1) { | |
− | + | fy = m * g - B * vy; | |
− | + | fx = m * g - B * vx; | |
− | + | ||
− | + | vy = vy + fy / m * dt * sin_alpha_1; | |
− | + | vx = vx + fx / m * dt * cos_alpha_1; | |
− | + | ||
− | + | ry = ry + vy * dt * sin_alpha_1; | |
+ | rx = rx + vx * dt * cos_alpha_1; | ||
} | } | ||
− | if ( | + | if (rx - r > mountian_length){ |
− | + | ||
− | + | fx = - B2 * vx; | |
− | + | vx = vx + fx / m * dt; | |
− | + | rx = rx + vx * dt; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
Строка 158: | Строка 119: | ||
ctx.fillStyle="#fff200"; //sun | ctx.fillStyle="#fff200"; //sun | ||
− | + | ctx.beginPath(); | |
− | + | ctx.arc(width, 0, sun_r, 0, 2 * Math.PI); | |
− | + | ctx.fill(); | |
− | ctx.fillStyle="# | + | ctx.fillStyle="#e6e5d1"; //snow |
ctx.beginPath(); | ctx.beginPath(); | ||
− | + | ctx.arc(rx, ry, r, 0, 2 * Math.PI); | |
− | + | ctx.fill(); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Строка 183: | Строка 134: | ||
} | } | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 201: | Строка 153: | ||
== Обсуждение результатов и выводы == | == Обсуждение результатов и выводы == | ||
− | В ходе работы над курсовым проектом была разработана простейшая модель, | + | В ходе работы над курсовым проектом была разработана простейшая модель, визуализирующая процесс схода лавины. Было установлено, что при увеличении коэффициента пропорциональности между силой <math> F </math>, действующей на частицу и скоростью частицы <math> v </math> уменьшается координата конечного положения частицы. При увеличении начальной скорости <math> v </math> увеличивается координата конечного положения частицы. |
− | Из программы видно, что | + | Из визуализации программы видно, что после схода расстояние между частицами уменьшается по сравнению с расстоянием между начальными положениями частиц примерно в <math> 8 </math> раз, т.е. происходит "кучкование" частиц. Следовательно можно сделать вывод о том, что линейные размеры района, охваченного снежной массой, значительно меньше линейных размеров снежной массы, из которой образуется лавина. |
Дальнейшие предложения по проекту: | Дальнейшие предложения по проекту: | ||
− | * Увеличить число частиц, дав возможность пользователю выбирать количество с помощью движка | + | * Увеличить число частиц, дав возможность пользователю выбирать количество с помощью движка |
− | * Дать возможность пользователю менять коэффициент пропорциональности с помощью движка | + | * Дать возможность пользователю менять коэффициент пропорциональности с помощью движка |
− | * Добавить движок, позволяющий менять угол наклона горы | + | * Добавить движок, позволяющий менять угол наклона горы |
Строка 214: | Строка 166: | ||
[[Медиа:avalanche.doc|Скачать отчет]] | [[Медиа:avalanche.doc|Скачать отчет]] | ||
<br> | <br> | ||
− | + | Скачать презентацию: | |
− | |||
== Ссылки по теме == | == Ссылки по теме == |