![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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 - 12.05.2004 14:34 |
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, там изложена моя библиотечка...
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 10:04 |