Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2010, 15:42   #1
Cause
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 11
По умолчанию Анимация дождя.

Здравствуйте, не могли бы вы написать код анимации дождя(при ветре и без ветра). А то что-то сам додуматься не могу =(
Cause вне форума Ответить с цитированием
Старый 06.11.2010, 15:50   #2
Cause
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 11
По умолчанию

Забыл Pascal wingraph
Cause вне форума Ответить с цитированием
Старый 06.11.2010, 16:40   #3
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

здесь у кого-то подпись гласит "помогите != сделай за меня"
очень правильная мысль, кстати.

а теперь по теме.
ветер - это некая сила, которая влияет на некий предмет
(лично я такие вещи называю "аффекторы" - от слова аффект(влиять) (хотя я могу ошибаться) )

кроме ветра на дождь действует гравитация.
дождь идет потому что на кадую капельку действует гравитация,
эта сила направленна вниз, и капли стремятся упасть.
т.е. грубо говоря, за каждую секунду у каждой капельки прибавляется координата y, т.е. капля падает.

ветер - примерно тоже самое, только сила направлена всторону.
допустим ветер дует справа налево.
тогда, грубо говоря, за каждую секунду у каждой капельки
уменьшается координата x, т.е. капельку сдувает влево

можно вывести следующее уравнение:

x(нов) = x(стар) + 1*k
здесь k - сила ветра (условно)

и

y(нов) = y(стар) + 1*g
здесь g - гравитация (условно)

если капельки "продолговатые",
то имеет смысл просчитать угол наклона капельки при заданном ветре
мне уже лень писать как это сделать, так что придумайте сами, это не сложно
xrob вне форума Ответить с цитированием
Старый 06.11.2010, 16:50   #4
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

а если делать в C++, надо будет описывать класс капелька, и создавать капелька a[800], чтобы получить дождь ?
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 06.11.2010, 16:51   #5
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

писал прямо тут шаблончик, могут быть ошибки.

Цитата:
#define dCount 100

drop=record
x,y,vx,vy:real;
end;

drops:array[1..dCount] of drop;

procedure draw();
var
i:integer;
begin
for i:=1 to dCount do
form1.image1.canvas.ellipse(round(d rops.x)-3,round(drops.y)-3,round(drops.x)+3,round(drops.y)+3 );
end;

procedure processed();
var
i:integer;
begin
for i:=1 to dCount do
begin
drops.vy= drops.vy + gravity; //гравитация
drops.vx= drops.vx + wind; //ветер

drops.vy= drops.vy * resistance; //сопротивление воздуха
drops.vx= drops.vx * resistance;

drops.y= drops.y +drops.vy; //прибавляем скорость
drops.x= drops.x +drops.vx;

if drops.y>top+height then begin drops.x:=random(width); drops.y:=top; end;
end;
end;
Levsha100 вне форума Ответить с цитированием
Старый 06.11.2010, 16:54   #6
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

кальян, намекаешь на то, что много капелек будет долго обрабатывать?
а какие есть еще варианты, чтобы получить реалистичный дождь?
можно еще сделать "тупой" дождь.
чтобы все капельки были одной картинкой, котоорая прокручивалась бы вниз, и поворачивалась в зависимости от ветра.
все.
а больше как еще?
мне так ничего в голову не приходит.
xrob вне форума Ответить с цитированием
Старый 06.11.2010, 16:56   #7
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

левша, по моему псевдо-коду писал? =)
xrob вне форума Ответить с цитированием
Старый 06.11.2010, 16:56   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
#define dCount 100
А разве в Delphi есть define??????
_-Re@l-_ вне форума Ответить с цитированием
Старый 06.11.2010, 17:30   #9
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Цитата:
левша, по моему псевдо-коду писал? =)
Нет. А че тут писать?
Цитата:
разве в Delphi есть define??????
Сори, говорю же писал прямо тут, мозги не раздуплились=)
const dCount=100; конечно же.
Levsha100 вне форума Ответить с цитированием
Старый 06.11.2010, 17:33   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Сори, говорю же писал прямо тут, мозги не раздуплились=)
Фух, а то я уж испугался что чего-то не знаю
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация. Cause Помощь студентам 6 06.11.2010 15:45
анимация Terrance! Помощь студентам 4 02.06.2010 16:50
анимация serj-07 Общие вопросы Delphi 17 10.01.2010 10:39
Анимация BuTeK1 Паскаль, Turbo Pascal, PascalABC.NET 0 19.01.2009 00:30
Анимация SanekIrk Общие вопросы Delphi 2 15.08.2008 21:57