Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 17.08.2012, 18:13   #1
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
"Пружинистое" движение

Требуется сделать движение, подобное синему шарику.
То есть, есть какая-то цель (красный шарик). Движется рандомно, нелинейно. Иногда тормозит. Надо ее догонять. Причем так, чтобы движение в итоге выглядело "пружинистым", "как на веревочке", ну, вы меня поняли. GIFка в аттаче.

Вот как это можно сделать? Вроде бы задача и не сложная, но вот как ее решить... Писец, заклинило! В голове пусто.
Миниатюры
Нажмите на изображение для увеличения
Название: bounce.gif
Просмотров: 1164
Размер:	125.6 Кб
ID:	17431  
__________________
(Offline)
 
Ответить с цитированием
Старый 17.08.2012, 19:07   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: "Пружинистое" движение

Методом Эйлера реализовать колебательное звено.
Любое решение будет лишь менее формальной реализацией вышесказанного.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
cahekp (18.08.2012), tormoz (17.08.2012)
Старый 17.08.2012, 21:37   #3
AVL
Разработчик
 
Регистрация: 27.01.2011
Адрес: Афипский
Сообщений: 419
Написано 100 полезных сообщений
(для 182 пользователей)
Ответ: "Пружинистое" движение

А если решать "в лоб"? У шарика есть масса, скорость; у невидимой пружины - коэффициент жесткости; при растяжении она придает синему шарику ускорение.
UPD: Реализовал на мидлетпаскале:

uses sensor;

type
  ball = record
    x,y,r:integer;
    m,vx,vy:real;
  end;

procedure draw_ball(b:ball);
begin
  fillellipse(b.x-b.r,b.y-b.r,b.r*2,b.r*2);
end;

var
  b1,b2:ball;
  fx,fy,k,lx,ly:real;

begin
  sensor.init;
  k:=1;
  b1.r:=20;
  b2.x:=0; b2.y:=0; b2.m:=100; b2.vx:=0; b2.vy:=0; b2.r:=10;
  repeat
    b1.x:=pointer_dragged_x;
    b1.y:=pointer_dragged_y;
    lx:=b1.x-b2.x;
    ly:=b1.y-b2.y;
    fx:=lx*k;
    fy:=ly*k;

    b2.vx:=b2.vx+(fx/b2.m);
    b2.vy:=b2.vy+(fy/b2.m);

    b2.x:=b2.x+trunc(b2.vx);
    b2.y:=b2.y+trunc(b2.vy);

    b2.vx:=b2.vx*0.95;
    b2.vy:=b2.vy*0.95;

    setcolor(255,255,255);
    fillrect(0,0,getwidth,getheight);
    setcolor(255,0,0);
    draw_ball(b1);
    setcolor(0,0,255);
    draw_ball(b2);
    repaint;
    delay(10);
  until false;
end.
Вложения
Тип файла: zip TEST_PROJECT.jar.zip (7.8 Кб, 460 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
cahekp (18.08.2012)
Старый 18.08.2012, 14:00   #4
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: "Пружинистое" движение

to AVL: О! Спасибо! Это как раз то, что нужно было! Просто и понятно, по - нашему. )
to impersonalis: Штука интересная, почитаю. Это не что-то похожее на easeOutBack-функцию?
__________________
(Offline)
 
Ответить с цитированием
Старый 20.10.2012, 23:30   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: "Пружинистое" движение

Сообщение от cahekp Посмотреть сообщение
to impersonalis: Штука интересная, почитаю. Это не что-то похожее на easeOutBack-функцию?
вот
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:16.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com