Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Этюды о бесполезной красоте - Графика на WEB страничке

div.main {margin-left: 20pt; margin-right: 20pt} Этюды о бесполезной красоте - Графика на WEB страничке Автор:   Евгений Скляревский
Адаптация для TMT Pascal:        Валерий Вотинцев

Оригинал статьи для Visual Basic: Журнал Hard'n'Soft

Завести домашнюю страничку сейчас проще простого: «застолбил» имя на бесплатном сервере (http://www.boom.ru/, http://www.narod.ru/ или др.), оформил сайт в Microsoft Word или FrontPage, скопировал файлы, зарегистрировался везде, где только можно - и пожинай прелести всемирной славы. Одна беда: никто, кроме автора и поисковых роботов, на нее не заглядывает, потому как фотография типа «Мы с Толяном в походе у костра» интересна только Толяну, а рекомендации по выбору «Порше» в предыдущей версии игры Need for Speed могут привлечь парочку фанатов, но повторно они уже не зайдут. Можно еще насобирать в Сети афоризмов или советов по оформлению и продвижению сайтов, но это только придаст страничке нафталиновый дух.

А вот что сделает ваш сайт действительно оригинальным, так это галерея компьютерной графики! Многие под этим понятием понимают фантастические пейзажи, созданные в 3D MAX натягиванием текстур на объемные тела с эффектной подсветкой. При всем уважении к кропотливости такой работы мы пойдем путем чисто математическим.

Скопируйте приведенную ниже программу в окно компилятора TMT Pascal и запустите программу.

(***********************************************) (* Screen Saver *) (* Автор алгоритма: Евгений Скляревский (VB) *) (* ------------------------------------------- *) (* Адаптация для TMT Pascal: *) (* Валерий Вотинцев *) (* MS-DOS 32-bit protected mode *) (* Win32 Console application *) (* Win32 GUI *) (***********************************************) uses CRT, Graph; var x, y, ss, xmax, ymax, col: longint; r, qx, qy, fi: extended; coeff1, coeff2, coeff3, coeff4,coeff5, coeff6: extended; ColDepth: word; red, green, blue: byte; begin xmax := 800; // Разрешение по горизонтали ymax := 600; // Разрешение по вертикали ColDepth := 16; // Максимальная глубина цвета (бит на пиксел) Coeff1 := 500; // Начальные Coeff2 := 0.5; // коэффициенты Coeff3 := 1.95; // для Coeff4 := 500; // формул Coeff5 := 1.5; Coeff6 := 1.85; r := 282; fi := Pi / xmax * 2 + 0.001; ss := 0; // Метод отрисовки "торца" цветной пластины // ss = 0 -> торец не рисуется // ss > 1 -> "толщина" торца в пикселах // Установим графический режим SetSVGAMode(xmax,ymax,ColDepth,LFBorBanked); if GraphResult<>grOk then begin // Проверка результата Writeln('Mode not supported..'); Halt(0); end; {1} {Randomize;} {2} {Repeat} {3} {r := 8 + Random(1024); Coeff1 := 1 + Random(1000); Coeff2 := 0.01 + Random(5); Coeff3 := 0.01 + Random(5); Coeff4 := 1 + Random(1000); Coeff5 := 0.01 + Random(5); Coeff6 := 0.01 + Random(5); } For y := 0 To pred(ymax) do begin For x := 0 To pred(xmax) do begin qx := r * (Sin(fi * x * y / Coeff1) - Coeff2 * Sin(Coeff3 * fi * y)); qy := r * (Sin(fi * y * x / Coeff4) - Coeff5 * Sin(Coeff6 * fi * x)); red := trunc(Abs(qy)) Mod 256; green := trunc(Abs(qy + qx)) Mod 256; blue := trunc(Abs(qx)) Mod 256; SetColor(RGBColor(red, green, blue)); If (ss > 1) Then Line (x, y, x+ss, y+ss) else PutPixel(x,y); If keypressed then break; end; end; {4} {until keypressed;} // Когда надоест - нажмем Any Key ReadKey; // Считываем нажатую клавишу CloseGraph; end.

Уверен, что ничего красивее вы на своем экране не видели! Программа несложная. Объявляются два цикла: по х и y проходятся все точки экрана. Рисуются они цветами, зависящими от этих x и y самым причудливым образом, описанным переменными qx и qy.


Попробуйте поменять параметры в этих переменных. Для этого просто уберите комментарии с блока операторов для вычисления случайных коэффициентов {3}, и вы получите новые картины для своей галереи.

Если снять комментарии вокруг операторов Repeat {2} и until keypressed {4}, то картины будут меняться автоматически случайным образом, заставляя зрителей вскрикивать от восхищения. Чтобы при каждом запуске программы картины не повторялись, удалите комментарии и с процедуры Randomize {1}.

В таком виде программу можно использовать как «скринсейвер» или даже «генератор текстур», и выложить ее на сайте в разделе «Мой софт» :)


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте