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

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

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

 
 Ответить  Открыть новую тему 
> Помогите с графикой
Buka
сообщение 1.06.2009 18:15
Сообщение #1


Новичок
*

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

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


Надо представить в виде мультфильма картину медленного захода солнца за линию горизонта с изменением освещения пейзажа.
есть текст как солнце заходит:
program fgh;
uses crt,graph;
var GrDr,GrMd,i,g,j:integer; f:word;
const
cga=1;
begin
grdr:=detect;
initgraph(grdr,grmd,'c:\pascal\bgi');
setcolor(2);
line(0,400,getmaxX ,400);
g:=getbkcolor;
i:=50;j:=50;
while i<700 do
begin
setcolor(yellow);
setfillstyle(1,yellow);
fillellipse(i,j,40,40);
delay(2000);
setcolor(g);
setfillstyle(1,g);
fillellipse(i,j,40,40);
i:=i+random(3);
j:=j+random(2);
end;

closegraph;
end.
readln;


а вот с фоном проблемы((

Тегами пользуйся в следующий раз (выделяешь код, и выбираешь в листбоксе CODE нужный язык программирования)

Сообщение отредактировано: volvo - 1.06.2009 18:30
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.06.2009 18:36
Сообщение #2


Гость






Цитата
есть текст как солнце заходит:
Ну, во-первых, оно ни разу не "заходит", а просто пересекает линию "горизонта". Чтоб заходило - надо сделать Вьюпорт без отображения графики за его границами, тогда солнце будет именно заходить, т.е., исчезать за линией горизонта...

Во-вторых: по какому признаку ты хочешь менять освещение? В зависимости от высоты солнца? А как должно меняться освещение? Может, просто менять цвет фона (скажем, когда солнце в зените - фон светло-синий, когда посередине между зенитом и горизонтом - фон просто синий, и когда солнце уже касается горизонта - фон становится черным)? Пойдет тебе такое? Если да, расскажу, как реализуется smile.gif
 К началу страницы 
+ Ответить 
Lapp
сообщение 1.06.2009 18:40
Сообщение #3


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

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

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


Цитата(Buka @ 1.06.2009 19:15) *

Надо представить в виде мультфильма картину медленного захода солнца за линию горизонта с изменением освещения пейзажа.
...
а вот с фоном проблемы((
Стоп. А какой, собственно, пейзаж? "Бабы с граблями рядами ходят, сено шевелят"? Или "двух озер лазурные равнины, где парус рыбаря белеет иногда, за ними ряд холмов и нивы полсаты, вдали рассыпанные хаты, на влажных береагх бродящие стада.." Что ты имеешь в виду? Ты уж скажи поточнее, а то тебе нарисуют баб, а ты скажешь - хочу стада.. Или ваще Бэтмана, летящего на крыльях ночи.. Пейзажей же много бывает! Понимаешь мою идею?

Или я что-то упускаю?.. blink.gif


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


Новичок
*

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

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


надо только чтоб цвет фона менялся smile.gif

Добавлено через 19 мин.
Цитата(volvo @ 1.06.2009 21:36) *

Ну, во-первых, оно ни разу не "заходит", а просто пересекает линию "горизонта". Чтоб заходило - надо сделать Вьюпорт без отображения графики за его границами, тогда солнце будет именно заходить, т.е., исчезать за линией горизонта...

Во-вторых: по какому признаку ты хочешь менять освещение? В зависимости от высоты солнца? А как должно меняться освещение? Может, просто менять цвет фона (скажем, когда солнце в зените - фон светло-синий, когда посередине между зенитом и горизонтом - фон просто синий, и когда солнце уже касается горизонта - фон становится черным)? Пойдет тебе такое? Если да, расскажу, как реализуется smile.gif


Да да, так мне и надо))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.06.2009 20:17
Сообщение #5


Гость






Ну, тогда что-то в этом роде:
uses crt, graph;

var
gd, gm: integer;
x, y: integer;

begin
initgraph(gd, gm, '');
if graphresult <> grok then begin
writeln('graphics error'); readln; halt(100);
end;

setcolor(green);
line(0, getmaxy div 2 + 1, getmaxx, getmaxy div 2 + 1);
setviewport(0, 0, getmaxx, getmaxy div 2, true);
y := 0;
while y < getmaxy div 2 do
begin
case y div (getmaxy div 6) of
0: setbkcolor(lightblue);
1: setbkcolor(blue);
2: setbkcolor(black);
end;
clearviewport;

setcolor(yellow);
setfillstyle(solidfill, yellow);
fillellipse(x, y, 40, 40);
delay(30);
y:=y+random(3);
x:=x+random(2);
end;
readln;
end.
В FPC отработало, для Турбо-Паскаля могут быть 2 проблемы: 1) слишком маленькая задержка в Delay, поменяй на то, что больше подходит. 2) смена цвета фона будет распространяться на весь экран, а не только на Вьюпорт... Попробуй, если что не так - говори, будем думать, как исправлять, вместе smile.gif
 К началу страницы 
+ Ответить 
Buka
сообщение 2.06.2009 4:47
Сообщение #6


Новичок
*

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

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


Спасибо smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 12.08.2025 2:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"