Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2013, 05:32
Кандидат Javascript-наук
Отправить личное сообщение для lammeR Посмотреть профиль Найти все сообщения от lammeR
 
Регистрация: 15.01.2010
Сообщений: 138

Движение по прямой под действием силы тяжести
Привет всем. Помогите реализовать движение объекта с учётом силы тяжести. Необходимо, чтобы объект двигался вниз с ускорением, а вверх - с замедлением. Не могу сделать. Как применить формулу F=mg ? Вот наработки:
<script type="text/javascript">
window.onload = function() {
		
		var canv = document.getElementById("canv");
		var ctx = canv.getContext("2d");
		
		var interval = null;
		
		var x = 50, y = 50, vx = 1, vy = 1,
            angle = 0, g = 9.8, a = 10, m = 5; /*vx, vy - скорость для х и у координат, m - масса, g - ускорение свободного падения, а - ускорение*/
		
		function line(x0, y0, x1, y1) {
				ctx.beginPath();
				ctx.moveTo(x0, y0);
				ctx.lineTo(x1, y1);
				ctx.strokeStyle = "blue";
				ctx.stroke();
		}
		
		function circ(x, y){
				ctx.beginPath();
				ctx.fillStyle = "red";
				ctx.arc(x, y, 6, 0, Math.PI * 2, true);
				ctx.fill();
		}
		
		function update() {
				ctx.clearRect(0, 0, 600, 400);
				//едим вниз
				if(x < 300 && y < 300) {
						angle = Math.atan2(300 - 50, 300 - 50);
				}
				//едим вверх
				else{
						angle = Math.atan2(80 - 300, 600 - 300);
				}
				
				//приращаем координаты х, у в зависимости от угла между точками прямой
				x += Math.cos(angle) * vx;
				y += Math.sin(angle) * vy;
				
				//доехали до верхней точки
				if(x >= 600 && y <= 80) {
						clearInterval(interval);
				}
				
				line(50, 50, 300, 300);
				line(300, 300, 600, 80);
				circ(x, y);
		}
		
		function anim() {
				interval = setInterval(function() {
						update();
				}, 16);
		}
		
		anim();
}

</script>
<canvas id="canv" width="800" height="600"></canvas>

Пока объект движется равномерно, так как не знаю как применить физику.

Последний раз редактировалось lammeR, 23.05.2013 в 05:35.
Ответить с цитированием
  #2 (permalink)  
Старый 23.05.2013, 09:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от lammeR
Как применить формулу F=mg ?
Там еще и угол наклона нужен...

Ответить с цитированием
  #3 (permalink)  
Старый 23.05.2013, 09:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от lammeR
Необходимо, чтобы объект двигался вниз с ускорением, а вверх - с замедлением. Не могу сделать.
Читаем...
Цитата:
Можно определить ускорение свободного падения, используя силу тяжести. Измерив весами массу тела в кг, соблюдая предельную точность, подвесить затем это тело на динамометре. Полученный результат силы тяжести будет в ньютонах. Разделив значение силы тяжести на массу тела, которое только что подвешивалось на динамометр, получится ускорение свободного падения.
Но тебе нужна проекция силы тяжести. Т.к. у тебя горка...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск