Редактирование: MegaBall2D
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Код программы == | == Код программы == | ||
− | |||
− | |||
window.addEventListener("load",main,false); | window.addEventListener("load",main,false); | ||
function main(){ | function main(){ | ||
Строка 47: | Строка 25: | ||
var start=false; | var start=false; | ||
var imp=0; | var imp=0; | ||
− | + | ||
− | + | ||
− | + | ||
− | + | setInterval(control,1000/fps); | |
− | + | ||
− | + | function get_mouse_coords(e){ | |
− | + | var m={}; // объявление пустого объекта | |
− | + | var rect = example_canvas.getBoundingClientRect(); | |
+ | m.x=e.clientX-rect.left; | ||
+ | m.y=e.clientY-rect.top; | ||
+ | return m; | ||
+ | } | ||
+ | |||
example_canvas.onmousedown=function(e){ | example_canvas.onmousedown=function(e){ | ||
m=get_mouse_coords(e); | m=get_mouse_coords(e); | ||
Строка 69: | Строка 52: | ||
} | } | ||
} | } | ||
+ | |||
star(); | star(); | ||
+ | |||
example_canvas.onmouseup=function(e){ | example_canvas.onmouseup=function(e){ | ||
flag = false; | flag = false; | ||
Строка 85: | Строка 70: | ||
start=true; | start=true; | ||
} | } | ||
+ | |||
} | } | ||
+ | |||
example_canvas.onmousemove = function(e){ | example_canvas.onmousemove = function(e){ | ||
if (flag) { | if (flag) { | ||
Строка 98: | Строка 85: | ||
} | } | ||
} | } | ||
+ | |||
function phys(){ | function phys(){ | ||
if (vy*vy<(y-YSL-2*r)) console.log('imp'); | if (vy*vy<(y-YSL-2*r)) console.log('imp'); | ||
Строка 212: | Строка 200: | ||
} | } | ||
} | } | ||
− | + | ||
− | + | == Описание == | |
+ | Игра, где нужно попасть левым мячиком в правый. Присутствуют отскоки от стенок и гравитация. Радиус мячиков уменьшается с каждым уровнем. Если левый мячик уже никак не достигнет правого, то игра начинается заново. | ||
+ | |||
+ | Исполнитель: [http://%D0%93%D1%80%D0%B5%D1%88%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2_%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB#.D0.9D.D0.B0.D1.83.D1.87.D0.BD.D0.B0.D1.8F_.D0.B4.D0.B5.D1.8F.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D1.8C Грешников П.С.] | ||
+ | |||
+ | Группа 13632/1 Кафедра Теоретической механики. | ||
+ | |||
+ | Файл: [[http://mech.spbstu.ru/images/0/0c/%D0%9A%D0%A0_JS.docx]] | ||
+ | |||
+ | == Математическая модель == | ||
+ | |||
+ | Рассматриваем левый мячик как тело, брошенное под углом к горизонту. | ||
+ | |||
+ | |||
+ | == Визуализация == | ||
+ | |||
+ | {{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Greshnikov%20PS/BB.html |width=1050 |height=600 |border=1 }} |