![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
mihashark |
![]()
Сообщение
#1
|
Гость ![]() |
Люди,помогите закрасить пирамиду методом Гуро,а то я чё его не понимаю ни хрена!
|
mihashark |
![]()
Сообщение
#2
|
Гость ![]() |
Вот полная формулировка:закрасит усечённую пирамиду с правильным 6-тиугольником в основании,предусмотреть изменение ориентации пирамиды и двигать источник света!
Я сейчас дошёл до определения нормалей поверхностей! |
BlackShadow |
![]()
Сообщение
#3
|
Гость ![]() |
Кхе, кхе...
А про етот метод по-подробней можно? |
mihashark |
![]()
Сообщение
#4
|
Гость ![]() |
Если бы я знал,я бы не спрашивал!короче его суть в том, что надо расчитать интенсивность освещения в вершинах(это я почти сделал),а потом построчно расчитывать интенсивность каждого пикселя!это в принципе я смогу сделать(хотя пока не получилось),там одна математика!но чё делать дальше:вот у меня получилась интенсивность в точке,например, 3,68 и как мне закрасит этот пиксель с такой интенсивностью???
|
BlackShadow |
![]()
Сообщение
#5
|
Гость ![]() |
Установи режим на 24/32 бита, а затем используй что-нибудь типа
Код Function Color(TvoyIntensivnost,MaxIntencivnost):TColor; Var n:Integer; Begin n:=Round(255*TvoyIntensivnost/MaxIntencivnost); Result:=RGB(n,n,n) End; |
mihashark |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как установить 24/32 бита?
и что эта функция мне даст?она же не выводит на экран ничего? и что такое maxintensivnost? Объясни поподробней,пожалуйста!очень надо! |
BlackShadow |
![]()
Сообщение
#7
|
Гость ![]() |
Объясняю.
Есть и под BP такие BGI-драйвера, которые умеют 24/32 бита. А под TMT Pascal, так это вообще родное. Далее, ты сказал, что сможешь высчитать интенсивность каждого пикселя. Очень хорошо. Есть такое понятие, как градации серого. Для отображения твоей пирамидки тебе, я думаю, этого хватит. А ф-ция, которую я привёл как набросок, вычисляет именно подходящую градацию серого по простой пропорции. А maxintensivnost обозначает максимальную интенсивность, которую может принимать какая-либо точка. |
Dark |
![]()
Сообщение
#8
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow, А если не серого то тогда как : )
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
Dark |
![]()
Сообщение
#9
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
mihashark, потом большая просьба скинуть программу.
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
BlackShadow |
![]()
Сообщение
#10
|
Гость ![]() |
Dark
![]() Можно сделать очень даже симпатично: со временем менять палитру. Т. е., допустим, первые 2 минуты использовать градации красного, затем синего, зелёного, жёлтого, серого... Довольно эффектно смотрится. |
mihashark |
![]()
Сообщение
#11
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Т.е. RGB вычисляет яркость цвета,это я понял!а чё потом делать?
Так можно быдет: [/RGB[n,n,n] putpixel(x,y)] и он этот пиксель закрасит с нужной интенсивностью??? |
mihashark |
![]()
Сообщение
#12
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
И вообще чё за RGB?он пишет unknown identifier!!!
|
BlackShadow |
![]()
Сообщение
#13
|
Гость ![]() |
С чего бы это...
Ты, я так понял, под BP пишешь. RGB там нету. И не интенсивность оно задаёт, а цвет формирует. Любой цвет состоит из трёх базовых: красного ( R ), зелёного ( G ) и синего ( B ). Если всего поровну, то получается, что-то серое, а вот яркость зависит от кол-во того другого и третьего. Самому написать RGB очень легко: Код Function RGB(r,g,b:Byte):LongInt;Assembler; Asm MOV AL,[r] MOV AH,[g] MOV DL,[b] XOR DH,DH End; либо Function RGB(r,g,b:Byte):LonhInt;Assembler; Asm MOV AL,[b] MOV AH,[g] MOV DL,[r] XOR DH,DH End; Какой из этих вариантов верен, я что-то никак сообразить не могу. Попробуй вывести пиксель очень красного цвета при помощи первого варианта. Если он будет очень синий, значит правильный второй ![]() А вообще PutPixel, если мне память не изменяет, требует 3 параметра: x, y и цвет. Угадай, откуда берётся третий *) Сообщение отредактировано: BlackShadow - |
BlackShadow |
![]()
Сообщение
#14
|
Гость ![]() |
Прикольно, а я и не знал, что ( R ) без пробелов заменяется на ®
|
mihashark |
![]()
Сообщение
#15
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Оба варианта при параметрах 100,100,100 выводят красный цвет!
если парамеры одинаковые (5,5,5) и (10,10,10) он должен вывести один и тот же цвет,но с разной интенсивностью? |
mihashark |
![]()
Сообщение
#16
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Слушай,BlackShadow,вруби аську так проще будет!
|
BlackShadow |
![]()
Сообщение
#17
|
Гость ![]() |
В теории да. А вот аську врубить не могу по загадочным причинам - она конектиться не хочет. Я ближе к ночи до дому доберусь, тогда можно будет и поговорить... Только я в Invisible всегда, так что пиши не стесняйся - подрублюсь, сразу отвечу.
|
mihashark |
![]()
Сообщение
#18
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow,тот модуль что я скачал с http://pascal.sources.ru/graph/fastvesa.htm,я чето не могу инициализировать графический режим,не подскажешь как это сделать?
|
BlackShadow |
![]()
Сообщение
#19
|
Гость ![]() |
Надо вызвать StVESAMode с параметором
$100 - 640*400 $101 - 640*480 $103 - 800*600 $105 - 1024*768 $107 - 1280*1024 А, если держится VBE 2.0, то и $120 - 1600*1200 Только проверяй, тянется ли этот режим. |
Dark |
![]()
Сообщение
#20
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
погляди в задачах - вывод pcx, там изложена моя библиотечка...
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
![]() |
Текстовая версия | 2.06.2023 13:18 |