Редактирование: Траектория тела, брошенного под углом к горизонту

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

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

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 2: Строка 2:
  
  
Рассмотрим движение материальной точки, брошенной под углом к горизонту в поле силы тяжести. Сопротивление воздуха не учитывается. Уравнение движения рассматриваемой системы и начальные условия имеют вид:
+
Рассмотрим движение материальной точки, брошенной под углом к горизонту в поле силы тяжести. Пренебрежем сопротивлением. Тогда уравнение движения рассматриваемой системы и начальные условия имеют вид:
 
:<math>
 
:<math>
 
m\ddot{\bf r} = m{\bf g};\qquad
 
m\ddot{\bf r} = m{\bf g};\qquad
Строка 11: Строка 11:
 
где  
 
где  
 
<math>m</math> и <math>{\bf r}</math> — масса и радиус-вектор материальной точки, <math>m{\bf g}</math> — сила тяжести, <math>{\bf v}_0</math> — начальная скорость, <math>t</math> — время, точкой обозначена производная по времени, векторы выделены жирным шрифтом.
 
<math>m</math> и <math>{\bf r}</math> — масса и радиус-вектор материальной точки, <math>m{\bf g}</math> — сила тяжести, <math>{\bf v}_0</math> — начальная скорость, <math>t</math> — время, точкой обозначена производная по времени, векторы выделены жирным шрифтом.
Интегрирование уравнения движения по времени с учетом начальных условий дает
+
Решение уравнения имеет вид:
 
:<math>
 
:<math>
 
{\bf r} = {\bf v}_0\, t + {\bf g}\,\frac{t^2}2.
 
{\bf r} = {\bf v}_0\, t + {\bf g}\,\frac{t^2}2.
Строка 27: Строка 27:
 
</math>
 
</math>
  
Таким образом, траектория является параболой, отображенной на интерактивном графике ниже. Сравнивается траектория, соответствующая <math>\alpha = 60^o</math> и оптимальная траектория, реализующаяся при <math>\alpha = 45^o</math> и обеспечивающая максимальную дальность броска. Перемещение слайдера позволяет наблюдать влияние угла броска на форму траектории (модуль начальной скорости при этом остается неизменным). 
 
 
 
<htmlet nocache="yes">Krivtsov/mg_TM</htmlet>
 
<div class="mw-collapsible mw-collapsed" style="width:100%" >
 
'''Текст программы построения графиков на языке JavaScript:''' <div class="mw-collapsible-content">
 
Файл '''"mg.js"'''
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
// Движение тела, брошенного под углом к горизонту
 
// Разработчик А.М. Кривцов
 
// 01.06.2014
 
// 06.11.2014 коррекция - удаление const (Цветков)
 
// Интернет: tm.spbstu.ru/mg
 
 
function MainMG(canvas) {
 
 
    // Предварительные установки
 
 
var deg = Math.PI / 180; // Угловой градус (degree)
 
 
var X_max = canvas.width;
 
var Y_max = canvas.height;
 
 
    // Размерные параметры
 
 
    var g = 1.;    // ускорение свободного падения
 
    var v0 = 1.;    // начальная скорость
 
 
    // Расчет констант
 
 
var h = v0 * v0 / 2 / g;
 
 
    // Задание начальных значений параметров
 
 
var al = 60 * deg;
 
   
 
// Область построения графика
 
    var x_min = 0; 
 
    var x_max = 2 * h;
 
    var y_min = 0;   
 
    var y_max = h;     
 
 
var N = X_max;                // число точек по оси x
 
var dx = x_max / N;            // шаг по оси x
 
var sx = X_max / x_max;        // масштаб по оси x
 
 
var sy; // масштаб по оси y
 
var Y0;  // положение 0 оси y в экранных координатах
 
var context;  // на context происходит рисование
 
 
    // настройка слайдеров и текстовых полей
 
 
    Text_01.value = Math.round(al / deg);
 
Slider_01.min = 0;     
 
    Slider_01.max = 90;
 
    Slider_01.step = 1;
 
    Slider_01.value = Text_01.value;   
 
 
draw();
 
 
    // функция, запускающаяся при перемещении слайдера
 
    this.set_01 = function(input) { al = input * deg; draw(); } 
 
   
 
// Функции, запускающиеся при изменении элементов управления
 
    this.setCheckbox_01 = function(bool) { draw(); }
 
this.setCheckbox_02 = function(bool) { draw(); }
 
 
// Отображение
 
 
function draw()
 
{
 
  // Расчет параметров графики
 
 
sy = Y_max / (y_max - y_min); // масштаб по оси y
 
Y0 = Y_max + y_min * sy;  // положение 0 оси y в экранных координатах
 
 
context = canvas.getContext("2d");  // на context происходит рисование
 
context.clearRect(0, 0, X_max, Y_max); // очистить экран
 
       
 
// Графики
 
 
Graph(F0, checkbox_02.checked, 'lightgrey');
 
Graph(F1, checkbox_01.checked, 'black');
 
 
        // Надписи
 
        context.fillStyle = 'black';
 
        context.font = "italic 20px Times";
 
        context.fillText("x", x_max * sx - 15, Y0 - 7);
 
        context.fillText("y", 5, 15);
 
        context.fillText("0", 10, Y0 - 3);
 
}
 
 
// Построение графика функции
 
 
function Graph(F, flag, color)
 
{
 
if (!flag) return;
 
 
context.strokeStyle = color;
 
context.beginPath();
 
for (var x = x_min; x < x_max; x += dx)
 
{
 
var y = F(x);
 
var X = x * sx;
 
var Y = Y0 - y * sy;
 
context.lineTo(X, Y);
 
}
 
context.stroke();
 
}
 
 
    // Траектории
 
   
 
    // al = 45 * deg;
 
function F0(x)
 
    {
 
var y = x - g / (v0 * v0) * x * x;
 
return y;
 
    }   
 
 
    // Произвольное al
 
function F1(x)
 
    {
 
var t = x / v0 / Math.cos(al)
 
var y = v0 * Math.sin(al) * t - g * t * t / 2;
 
return y;
 
    }   
 
}
 
</syntaxhighlight>
 
Файл '''"mg.html"'''
 
<syntaxhighlight lang="html5" line start="1" enclose="div">
 
<!DOCTYPE html>
 
<html>
 
<head>
 
    <meta charset="UTF-8" />
 
    <title>mg</title>
 
    <script src="mg.js"></script>
 
</head>
 
<body>
 
    <canvas id="canvasGraph" width="400" height="упцупцупцупorder:1px solid #000000;"></canvas>
 
 
<!--Выбор графика (чекбоксы)-->
 
<div>
 
        Траектория:
 
        <font color="#000000" size="5"><B>—</B></font>
 
<input type="checkbox" id="checkbox_01" name="" onchange="app.setCheckbox_01(this.checked);" checked/>актуальная,
 
<font color="CCCCCC" size="5"><B>—</B></font>
 
<input type="checkbox" id="checkbox_02" name="" onchange="app.setCheckbox_02(this.checked);" checked/>оптимальная (<I>α</I> = 45˚)
 
    </div>
 
 
    <!--Установка параметров взаимодействия (текстовые поля и слайдеры)-->
 
    <div>
 
Угол броска:
 
        <font face= "Times New Roman">
 
<I>α</I> = <input id="Text_01" style="width: 2.2ex;" required pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)" oninput="
 
            // если введено не число - строка не пройдет валидацию по паттерну выше, и checkValidity() вернет false
 
            if (!this.checkValidity()) return;
 
            app.set_01(this.value);
 
            document.getElementById('Slider_01').value = this.value;
 
        ">˚
 
<input type="range" id="Slider_01" style="width: 100px;" oninput="app.set_01(this.value); document.getElementById('Text_01').value = this.value;">
 
</font>
 
</div>
 
   
 
<script type="text/javascript">var app = new MainMG(
 
document.getElementById('canvasGraph')
 
);</script>
 
 
</body>
 
</html>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
 
== См. также ==
 
== См. также ==
  
 
* [[Пример: баллистическое движение|Баллистическое движение]]
 
* [[Пример: баллистическое движение|Баллистическое движение]]
 
[[Category: Виртуальная лаборатория]]
 
Вам запрещено изменять защиту статьи. 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:

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