Главная » Статьи для тега "Кетков"

Анимация на плоскости Free Pascal

Добавлено Дата: 4 August, 2014 категория: Free Pascal

Вращающийся квадрат — один из самых простых примеров анимации. При описании пакета OpenGL к подобной иллюстрации прибегают столь же часто, как и к программе "Общего привета" ("Hello, world!"). Больше других нам понравилась реализация вращения квадрата,  написанная  на  языке  C  и  приведенная  в  книге Э. Эйнджела "Интерактивная компьютерная графика" [36]. В этом примере, с од- ной стороны, демонстрируется управление вращением с помощью кнопок мыши (левая кнопка запускает вращение, правая — останавливает). С другой стороны, здесь появилась возможность разумного использования времени ожидания сооб- щения, адресованного какому-нибудь из обработчиков событий. Вместо пустого повторения главного цикла приложение может получить управление и использо- вать время "простоя" для выполнения каких-то вычислений или подготовки ин- формации для отображения следующей сцены. Адрес такой процедуры, преду- смотренной в приложении, регистрируется в GLUT с помощью подпрограммы glutIdleFunc. Объем нашей модификации примерно на 10% меньше по сравнению с программой Эйнджела.

Читать »

Операции над однотипными массивами Free Pascal

Добавлено Дата: 3 August, 2014 категория: Free Pascal

В Паскале выделяют массивы, совместимые по операции присваивания. К ним относятся массивы, объявленные с использованием одного и того же типа:

type

m10_b = array [1..10] of byte; var

a1 : m10_b; a2 : m10_b;

a3, a4 : m10_b;

Читать »

Основные аффинные преобразования OpenGL Free Pascal

Добавлено Дата: 1 August, 2014 категория: Free Pascal

Отображаемые геометрические объекты или их фрагменты могут подвергаться различным преобразованиям типа перемещения в пространстве, вращения относи- тельно заданного центра или заданной оси, растяжения или сжатия с индивидуаль- ными или одинаковыми масштабными коэффициентами по каждой координатной оси. Библиотека OpenGL обеспечивает построение различных проекций — орто- графической, перспективной, изометрической, диметрической и любой другой, для которой пользователь обнаружил в литературе соответствующую матрицу аффин- ного преобразования.

Читать »

Записи Free Pascal

Добавлено Дата: 26 July, 2014 категория: Free Pascal

Своим происхождением записи обязаны таблицам — одному из наиболее рас- пространенных документов представления данных, который возник задолго до по- явления ЭВМ. Одна из первых программных систем, взявших на вооружение запи- си — "Коммерческий Транслятор" (COMTRAN), разработанный в 1959 г. группой сотрудников IBM. Позднее данные типа запись составили основу алгоритмическо- го языка COBOL (COmmon Business Oriented Language), ориентированного на об- работку коммерческих документов.

Читать »

Альтернативные средства работы с датами и временем Free Pascal

Добавлено Дата: 23 July, 2014 категория: Free Pascal

Одна из дополнительных возможностей определения компонентов текущей ка- лендарной даты и показаний системных часов заключается в прямом обращении к соответствующей функции операционной системы (листинг 14.7).

   Листинг 1 4 .7 .  Программа  Win_Date                                            

Читать »

Управление атрибутами отображаемого текста Free Pascal

Добавлено Дата: 17 July, 2014 категория: Free Pascal

При записи очередного символа в окно вывода (а точнее, в соответствующую позицию видеопамяти) к коду ASCII присоединяется байт атрибута, который хра- нится в системной переменной TextAttr. Мы уже упоминали, что по умолчанию в ней находится код $07, что соответствует следующей комбинации битов атрибута:

Читать »

Построение окружностей, эллипсов и дуг Free Pascal

Добавлено Дата: 16 July, 2014 категория: Free Pascal

Список процедур, предназначенных для работы с окружностями и эллипсами, приведен в табл. 15.6.

Таблица 15.6

Формат обращения к процедуре

Читать »

Строки типа PChar Free Pascal

Добавлено Дата: 15 July, 2014 категория: Free Pascal

Строки типа PChar тоже относятся к строкам неограниченной длины, но способ их представления в памяти отличается от Ansi-строк. Имя переменной типа PChar тоже является указателем на значение переменной, хранящееся в куче. Но этот ука- затель не типизирован — он "знает" адрес значения, но не "знает" его длину. При- знаком конца строки типа PChar является байт с нулевым значением, который ав- томатически добавляется вслед за последним значащим символом. В момент объявления переменной типа PChar компилятор выделяет 4 байта под указатель и заносит туда константу Nil, что эквивалентно созданию пустой строки. К любому символу значения строки типа PChar можно обратиться по его индексу, отсчет ко- торых производится от 0.

Читать »

OpenGL Free Pascal

Добавлено Дата: 6 July, 2014 категория: Free Pascal
Немного истории

Графический стандарт OpenGL (Open Graphics Library — открытая графическая библиотека) базируется на разработке фирмы Silicon Graphics. В 1992 г. он был принят ведущими  производителями  программного  и  аппаратного  обеспечения. В настоящее время пакет OpenGL включается в состав операционных систем наи- более распространенных средств вычислительной техники.

Читать »

Расширенный вызов функций Free Pascal

Добавлено Дата: 4 July, 2014 категория: Free Pascal

Подобно языку С++ в программах на языке Free Pascal допускается вызов функций с игнорированием возвращаемого значения. Такой прием имеет смысл, когда функция помимо вычисления возвращаемого значения производит какие-то полезные дополнительные действия. В листинге 9.16 таким дополнительным дей- ствием в функции f_ex(y) является изменение аргумента y, если его значение от- рицательно.

Читать »

Шаблоны кода Free Pascal

Добавлено Дата: 4 July, 2014 категория: Free Pascal

Шаблоны кода используются для вставки в набираемый текст заранее сформи- рованных заготовок. Каждой заготовке должно быть присвоено уникальное имя. Например, с именем ifthen может быть связан следующий фрагмент кода:

If | Then begin  end

Такой фрагмент может быть вставлен в набираемый текст либо после набора соответствующего имени, либо после клавишной команды <Ctrl>+<J>, если курсор установлен справа от имени шаблона. Если перед курсором отсутствует имя шаб- лона, то появляется всплывающее окно для выбора нужного шаблона. Если в шаб- лоне обнаружен символ |, то курсор останавливается на нем, символ удаляется, освобождая место для набора нестандартной вставки. В приведенном выше приме- ре между словами If и Then должно быть вставлено условное выражение.

Читать »

Числовые данные

Добавлено Дата: 3 July, 2014 категория: Free Pascal

Полный перечень целочисленных типов данных, используемых в программах на языке Free Pascal, приведен в табл. 4.1. По сравнению с языком Object Pascal здесь появился новый тип 8-байтовых чисел без знака (QWord).

Читать »

Числовые данные интервального типа

Добавлено Дата: 26 June, 2014 категория: Free Pascal

Подмножество целочисленных данных, принадлежащее заданному диапазону [min, max], относят к числовым данным интервального типа. При объявлении та- ких данных в Паскале принята следующая форма записи:

Type

qq = 1..10;  // min=1, max=10

Читать »

Дополнительный код для целых отрицательных чисел

Добавлено Дата: 19 June, 2014 категория: Free Pascal

Отрицательные целые числа в компьютере представляются в дополнительном коде. Это означает следующее. Если для хранения чисел отводится n двоичных разрядов, то числа N и –N дополняют друг друга до 2. Предположим, что для хра- нения числа 57 в памяти отведен один байт. Тогда двоичное представление этого

Читать »

Числа Фибоначчи Free Pascal

Добавлено Дата: 18 June, 2014 категория: Free Pascal

Более поздний рекурсивный алгоритм связывают с именем итальянского мате- матика Фибоначчи (XII—XIII вв.). Он занимался оценкой потомства кроликов при следующих предположениях: все начинается с разнополой пары, ежегодно прино- сящей приплод в виде новой пары — самца и самки. Дети начинают пополнять по- пуляцию по такой же схеме через два года после своего рождения. Считая, что смертность отсутствует, получаем:

Читать »