![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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 - 12.08.2005 18:57 |
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 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
я конечно не уверен...попробуй вот так :
тока с цветами уже сам разберсь как тебе менять -------------------- 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. |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 9:53 |