![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
flashg |
![]()
Сообщение
#1
|
Гость ![]() |
Задание:
Кто нибудь знает как это сделать, есть ли исходник В виде мультфильма представить картину медленного захода солнца за линию горизонта с изменением освещения пейзажа. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
flashg, а пейзаж должен быть, конечно, 3D? Иначе какое же изменение освещения?
![]() Или уточни задание: Что за пейзаж, как задаешь, чем можно пользоваться ... |
Guest |
![]()
Сообщение
#3
|
Гость ![]() |
нет нас пока учат на паскале я глаза не видел дельфи
а разве нельзя его вест этот 2ух мерный пейзаж цветом радуги сплошным оброзом изменять |
flashg |
![]()
Сообщение
#4
|
Гость ![]() |
это вот всё задание нам таким оброзом дают - а пользоватся можно тока паскалем.
выше отавленый комент под GUEST это мое сообщение |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата(Guest @ 3.08.05 0:02) а разве нельзя его вест этот 2ух мерный пейзаж цветом радуги сплошным оброзом изменять Во-первых, чтобы его изменять, надо его сначала нарисовать... Ты это умеешь? И потом, что значит "цветом радуги" и "сплошным образом"? Непонятно... Единственное, что можно попытаться сделать - это прочитать "пейзаж" из внешнего BMP (или PCX) файла, поверх него отрисовать "солнце", и потом затемнять все изображение, начиная с того момента, как "солнце" коснулось "горизонта" (при этом яркость изображения будет = 100%), до того момента, как "оно" за горизонтом скроется полностью (тогда яркость будет = 0%, и экран будет полностью черным)... Но вот как реализовать отрисовку пикселов с заданной степенью яркости (или просто смену яркости для пикселов) - надо думать... |
Malice |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 3.08.05 0:26) Но вот как реализовать отрисовку пикселов с заданной степенью яркости (или просто смену яркости для пикселов) - надо думать... Палитру крутить надо. |
flashg |
![]()
Сообщение
#7
|
Гость ![]() |
и как это палитра крутится
|
Malice |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(flashg @ 3.08.05 11:35) и как это палитра крутится Для начала сохрани начальную палитру: Код port[$3c8]:=номер цвета; red;=port[$3c9]; green:=port[$3c9]; blue:=port[$3c9]; Так установить цвет: Код port[$3c8]:=номер цвета; port[$3c9]:=красный; port[$3c9]:=зеленый; port[$3c9]:=синий; По мере "восхождения" меняй все палитру от 0 до оригинальной, все как бы проявится. |
flashg |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
Моё задание звучит так
В виде мультфильма представить картину медленного захода солнца за линию горизонта с изменением освещения пейзажа. ======================================================== вопрос как мне сделать линию на сплошном цвете и изменение цвета пейзажа + у меня ко всем графическим програ==ам глюк после запуска не возможно вернутся к редоктированию он (паскаль) зависает на этой процедуре показывания графического результата. Код {прототип заката} program zakat; uses crt,graph; var grdr,grmd,i,j,g:integer; begin grdr:=detect; initgraph(grdr,grmd,'c:\pascal\bgi'); setbkcolor(lightblue); g:=getbkcolor; i:=50; j:=50; while i<getmaxX do begin setcolor(red); setfillstyle(1,yellow); fillellipse(i,j,20,20); delay(3000); setcolor(g); setfillstyle(1,g); fillellipse(i,j,20,20); i:=i+random(3); j:=j+random(2); end; readln; end. |
klem4 |
![]()
Сообщение
#10
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Ты не закрыл графику.
CloseGraph. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
flashg,
Цитата вопрос как мне сделать линию на сплошном цвете и изменение цвета пейзажа Линия НА ЛЮБОМ цвете рисуется через Line(x1, y1, x2, y2), ну а насчет изменения цвета пейзажа - попробуй ВНИМАТЕЛЬНО перечитать, например, пост №8... Кстати, ты в графический-то режим переходишь (InitGraph), а CloseGraph за тебя кто будет делать? |
flashg |
![]()
Сообщение
#12
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(Malice @ 3.08.05 16:31) Для начала сохрани начальную палитру: Код port[$3c8]:=номер цвета; red;=port[$3c9]; green:=port[$3c9]; blue:=port[$3c9]; Так установить цвет: Код port[$3c8]:=номер цвета; port[$3c9]:=красный; port[$3c9]:=зеленый; port[$3c9]:=синий; Цитата(flashg @ 12.08.05 19:20) Код {прототип заката} program zakat; uses crt,graph; var grdr,grmd,i,j,g:integer; begin grdr:=detect; initgraph(grdr,grmd,'c:\pascal\bgi'); setbkcolor(lightblue); g:=getbkcolor; i:=50; j:=50; while i<getmaxX do begin setcolor(red); setfillstyle(1,yellow); fillellipse(i,j,20,20); delay(3000); setcolor(g); setfillstyle(1,g); fillellipse(i,j,20,20); i:=i+random(3); j:=j+random(2); end; readln; end. ну и куда мне это в мою заготовку втыкать ![]() Сообщение отредактировано: flashg - |
Malice |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(flashg @ 12.08.05 18:57) ну и куда мне это в мою заготовку втыкать ![]() Гы ![]() |
flashg |
![]()
Сообщение
#14
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
окей нашёл пример домик с палянкой и нужный фон дом и фон убрал пытался втиснуть солнце а вышла глюконация
вот глянте - в чём моя ошибка Код uses crt,graph; const a:array [1..9] of byte=(0,0,1,3,11,3,1,0,0); var GrDriver,GrMode,i,g,j:integer; procedure dom; const cga=1; begin 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; end; procedure fon (i:word); Begin SetBkColor(i); SetFillStyle(1,green); SetColor(lightgreen); End; BEGIN GrDriver:=EGA; GrMode:=EGAHi; initgraph(GrDriver,GrMode,'c:\pascal\BGI'); {прописать расположение паскаля} if GraphResult<>grOK then halt(1); for i:=1 to 9 do begin fon(a[i]); dom; delay(65000); delay(65000); end; closegraph; end. readln; |
Malice |
![]()
Сообщение
#15
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
В этом коде ошибок нет. Летает солнышко как и задумано
![]() |
flashg |
![]()
Сообщение
#16
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
да но фон та чёрный постоянный а задумывался сменяющейся
Код uses crt,graph; const a:array [1..9] of byte=(0,0,1,3,11,3,1,0,0); var GrDriver,GrMode,i:integer; procedure fon (i:word); Begin SetBkColor(i); SetFillStyle(1,green); SetColor(lightgreen); End; BEGIN GrDriver:=EGA; GrMode:=EGAHi; initgraph(GrDriver,GrMode,'c:\pascal\BGI'); {прописать расположение паскаля} if GraphResult<>grOK then halt(1); for i:=1 to 9 do begin fon(a[i]); delay(65000); delay(65000); end; closegraph; end. readln; END. |
klem4 |
![]()
Сообщение
#17
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
я конечно не уверен...попробуй вот так :
procedure fon (i:word);
Begin
SetBkColor(i);
SetFillStyle(0,i);
FloodFill(0,0,i);
End;
тока с цветами уже сам разберсь как тебе менять -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
flashg |
![]()
Сообщение
#18
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот вариант в котором фон тока не меняется а всё остальное работает
Прикрепленные файлы ![]() |
flashg |
![]()
Сообщение
#19
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
дубль 3
фон меняется солнце есть но за солнцем глючный след и снова бесконечность Код uses crt,graph; const a:array [1..9] of byte=(10,9,5,3,11,7,8,10,11); var GrDriver,GrMode,i,g,j:integer; f:word; procedure dom; const cga=1; begin line(0,300,getmaxX,300); SetBkColor(f); i:=50; j:=50; while i<300 do begin setcolor(yellow); setfillstyle(1,yellow); fillellipse(i,j,40,40); delay(2000); setcolor(f); setfillstyle(1,f); fillellipse(i,j,40,40); i:=i+random(3); j:=j+random(2); end; end; procedure fon (f:word); Begin SetBkColor(f); SetFillStyle(1,f); SetColor(f); End; BEGIN GrDriver:=cGA; GrMode:=cGAHi; initgraph(GrDriver,GrMode,'c:\pascal\BGI'); {прописать расположение паскаля} if GraphResult<>grOK then halt(1); for f:=1 to 9 do begin fon(a[f]); dom; delay(100); delay(100); end; closegraph; end. readln; |
flashg |
![]()
Сообщение
#20
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
сделал:
Код uses crt,graph; const a:array [1..9] of byte=(10,9,5,3,11,7,8,10,11); var GrDriver,GrMode,i,g,j:integer; Palette : PaletteType; f:word; procedure dom; const maxi = 400; starti = 0; begin line(0,maxi,getmaxX,maxi); i:=starti; j:=50; { SetRGBPalette(f, round((maxi - i - starti)*256/maxi), 0, 0);{} SetBkColor(f); while i<360 do begin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SetRGBPalette(f, round((maxi - i - starti)*63/maxi), 0, 0);{} ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; setcolor(yellow); setfillstyle(1,yellow); fillellipse(j,i,40,40); delay(4000); setcolor(f); setfillstyle(1,f); fillellipse(j,i,40,40); i:=i+random(3); j:=j+random(2); end; end; procedure fon (f:word); Begin SetBkColor(f); SetFillStyle(1,f); SetColor(f); End; BEGIN GrDriver:=VGA; GrMode:=VGAHi; initgraph(GrDriver,GrMode,'c:\pascal\bgi'); {прописать расположение паскаля} if GraphResult<>grOK then halt(1); f := 1; GetPalette(Palette); fon(a[f]);{} dom; SetAllPalette(Palette); closegraph; end. |
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 20:02 |