IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Графическая задача (анимация), Есть туча, идет дождь, емкость наполняется
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


Доброго времени суток. Прошу помочь в решении задачи. Вот условие: нужно составит программу вывода в верхнюю часть экрана изображение тучи, а в нижнюю – емкость для воды; при нажатии клавиши Enter начинает идти дождь. В то время, как идет дождь, туча начинает уменьшаться, а емкость наполняется.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Окей, условие понятно. Чем помочь?


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


как вообще нарисовать тучу, анимацию дождя и уменьшение тучи? искал много где похожих задач, но что все неудачно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


С помощью стандартного модуля graph, например. В нем есть процедуры и функции для рисования линий, окружностей, дуг и так далее. Если нет учебника, вот краткое описание с примерами: Использование графики и звука в языке Turbo Pascal.

Попробуй написать сам, для начала, и выложи результат. Если что-то не получится, сделаем вместе.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


на графику фулскрин обязательно? а то win7 стоит, даже простые шаблоны не запускает, ругается на разрешение, в турбо или фри норм будет, не знаете?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Используй FreePascal, там все нормально. Качать отсюда.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


Program tu4ki;
uses
crt,graph;

procedure graphinterface;
var
Gd,Gm:Integer;
begin
Gd:=Detect;
InitGraph(Gd,Gm,'');
if GraphResult<>grOk then
begin
Halt(1);
end;
end;
begin
clrscr;
graphinterface;
setbkcolor(9);
arc(120,100,45,315,40);
arc(170,100,45,135,40);
arc(220,100,225,360,40);
arc(220,100,0,135,40);
arc(170,100,225,315,40);
sector(165,400,180,360,120,90);
floodfill(170,100,7);
readkey;
CloseGraph;
end.


сори что долго не писал, был занят на учебе, ну вот, написал, но во фри почему-то у меня не отображаются цвета, только черный фон и фигуры, а заливка и остальное не работает, хотя в колледже на XP с борланда все отлично... вот в чем проблема, я знаю что анимацию с помощью циклов делать надо, только не знаю КАК сделать.. если можете помогите
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Не знаю, что у тебя там работало, потому что работать не особо должно было..

1. Сомневаюсь, что тебе нужен SetBkColor. Ты попробуй сначала без него, а потом подключи, если надо будет. Он работает не совсем так, как иногда хочется..

2. Устанавливай цвет в SetColor(<color>);.

3. Перед FloodFill установи SetFillStyle(SolidFill,<color>);


Добавлено через 1 мин.
и еще:

4. В FloodFill нужно указывать цвет границы, до чего заполнять (то есть твой <color>)

Добавлено через 6 мин.
То есть, примерно так:
var
CloudBorderCol,CloudCol: integer;

begin
graphinterface;
CloudBorderCol:=DarkGray;
CloudCol:=LightGray;
SetColor(CloudBorderCol);
arc(120,100,45,315,40);
arc(170,100,45,135,40);
arc(220,100,225,360,40);
arc(220,100,0,135,40);
arc(170,100,225,315,40);
sector(165,400,180,360,120,90);
SetFillStyle(SolidFill,CloudCol);
floodfill(170,100,CloudBorderCol);
readkey;
CloseGraph;
end.


Добавлено через 3 мин.
Цитата(Nike0 @ 2.12.2009 13:54) *
я знаю что анимацию с помощью циклов делать надо, только не знаю КАК сделать..
Да, в цикле. Принцип простой: рисуешь - стираешь - рисуешь - стираешь - ...
Ты поищи по форуму, много было анимации. Если что-то будет неясно - спрашивай конкретно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


решил поднять тему, принцип понял, но реализовать не могу... пробовал по-разному, но безуспешно, единственное что понятно, чтобы чтото начало двигаться, надо вместо цифр ставить параметры и в циклах их изменять и все)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Nike0 @ 22.12.2009 12:18) *
чтобы чтото начало двигаться, надо вместо цифр ставить параметры и в циклах их изменять и все)
Хорошо. Вот тебе дождь. Этого тебе достаточно для начала?
uses
WinCRT,Graph;

const
n=40;
l1=10;
l2=20;
a=-0.2;
b=20;
SkyCol=Black;
RainCol=Cyan;

type
tRain= record
x,y,z,dx,dy: integer
end;

var
Rain: array[1..n]of tRain;
Gd,Gm,i,g: Integer;

begin
Gd:=Detect;
InitGraph(Gd,Gm,'');
if GraphResult<>grOk then Halt(1);
g:=GetMaxY-b-l2-l1;
for i:=1 to n do with Rain[i] do begin
dy:=l1+Random(l2-l1+1);
dx:=Round(dy*a);
x:=b+Random(GetMaxX-2*b);
y:=b+Random(GetMaxY-2*b)
end;
repeat
for i:=1 to n do with Rain[i] do begin
if y>g then begin
SetColor(SkyCol);
Line(x,y,x+dx,y+dy);
Line(x+dx,y+dy,x+2*dx,y+2*dy);
dy:=l1+Random(l2-l1+1);
dx:=Round(dy*a);
x:=b+Random(GetMaxX-2*b);
y:=b
end;
SetColor(SkyCol);
Line(x,y,x+dx,y+dy);
SetColor(RainCol);
Line(x+2*dx,y+2*dy,x+3*dx,y+3*dy);
Inc(x,dx);
Inc(y,dy)
end;
until KeyPressed;
while KeyPressed do ReadKey;
CloseGraph;
end.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


да спасибо, можно же сделать чтобы дождь шел только в определенной области? поставить ограничения на параметры?

Сообщение отредактировано: Nike0 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Nike0 @ 23.12.2009 12:47) *
да спасибо, можно же сделать чтобы дождь шел только в определенной области? поставить ограничения на параметры?

Запросто. Параметры уже там. Разберешься, что и как ограничивать?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


Цитата
Разберешься, что и как ограничивать?
тут их много очень, если не тяжело по x и у какие отвечают, я на них тогда и поставлю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Nike0 @ 23.12.2009 14:37) *
тут их много очень, если не тяжело по x и у какие отвечают, я на них тогда и поставлю
Nike0, ты обнаглел. Ты полагаешь, я все это делал, чтоб ты сдал зачет/курсовик/т.п.? Мне плевать на твои зачеты. Я думал, ты хоть чему-то научиться хочешь. А ты не хочешь разобраться в пяти параметрах.. Если так - я буду только рад, если ты завалишь сессию - одним протирателем штанов меньше будет.

все, больше я твои мессаджи даже не читаю.
гудбай.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.04.2024 16:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name