68891

Виведення тексту

Лекция

Информатика, кибернетика и программирование

Виведення тексту на екран в графічному режимі має ряд відмінностей від подібних дій в текстовому режимі. Відмінність полягає в тому, що всі дії проводяться тільки із строковими константами і змінними, числова ж інформація повинна заздалегідь перетворюватися в строкову (процедура Str).

Украинкский

2014-09-26

46.5 KB

0 чел.

Лекція 2

Виведення тексту

Виведення тексту на екран  в графічному режимі має ряд відмінностей  від подібних дій  в текстовому режимі. Відмінність полягає в тому, що всі дії проводяться тільки із строковими константами і змінними, числова ж інформація повинна заздалегідь перетворюватися в строкову (процедура Str). Інша відмінність  полягає в тому, що можна використовувати різні шрифти, оскільки при оформленні тексту може виникнути проблема написання його різними шрифтами.

Вибір шрифту і стилю.

У модулі є стандартні шрифти, які знаходяться у файлах з розширенням .CHR у каталозі BGI. Це набір штрихових шрифтів, які можуть використовуватися для виведення інформації. Крім того, доступний матричний шрифт  8х8 для графічних режимів.

Для позначення  цих шрифтів введені константи:

Const 

Defaultfont=0;                 { матричний шрифт 8*8-встановлюється за умовчанням для текстового і графічного режимів}

         { штрихові шрифти встановлюються векторним способом}

Triplexfont=1;                { напівжирний шрифт}

Smallfont=2;                   { світлий шрифт (тонке зображення})

Sansseriffont=3;           { книжкова гарнітура}

Gethicfont=4;                 { готичний шрифт}

Активізація будь-якого з названих шрифтів здійснюється процедурою

SetTextStyle(Font, Direction,CharSize:Word)

Тут параметр Font-номер шрифту

Direction- розташування тексту(за умовчанням горизонтальне).

Можливі дві орієнтації тексту:

Const

, рівне

     Horizdir=0;    { горизонтальна орієнтація, зліва направо}

     Vertdir=1;      { вертикальна орієнтація, від низу до верху}

При значенні Direction,  рівному Vertdir, всі символи будуть повернені проти годинникової стрілки на 90 градусів і виводяться від низу до верху.

Розмір символу встановлюється параметром Charsize, діапазон зміни якого складає   від 1 до 10.

Реєстрація  нових штрихових шрифтів.

Модуль Graph надає можливість використовувати нові шрифти, що не мають ідентифікаторів в системі, - головне, щоб файл шрифтів був у форматі фірми Borland. Користуючись функцією:

InstallUserFont (FontFileName  :  String ) : Integer

можна встановити відповідність між ім'ям штрихового файлу (Fontfilename)  і його реєстраційним номером в системі. Після цього можна вибрати цей шрифт процедурою Settextstyle, вказавши першим параметром номер нового шрифту.

Безпосереднє виведення рядків.

Для виведення тексту існують процедури:

 -outtext(Text:string)

виводить рядок Text, починаючи з поточної позиції курсора

 -outtextxy(x,y:integer; Text:string)

виводить рядок,  орієнтований щодо координат  ( Х,y).

Наприклад

     Outtext(`Borland Pascal`);

Наприклад

Const

            C:string=` графік функції y=sinx`;

. . .   

 OutTextXY(200,300,C);

. . .

Шрифт заздалегідь може бути  встановлений процедурою Settextstyle.

Наприклад

  Outtextstyle(100,100,`горизонтальний рядок`);

Settextstyle(3,0,1);          { горизонтальний рядок}

Outtextxy(100,200,`книжкова гарнітура`);

Settextstyle(4,1,5);       { вертикальний рядок}

Outtextxy(100,300,`готичний шрифт`);

Вся числова інформація повинна заздалегідь перетворюватися в строкову (процедура Str).

Наприклад, в змінних  x, у  знаходиться  числова інформація, для виведення її на екран необхідно перетворити їх в строкові змінні відповідно Sx  і  Sy.

  Var

         SX,SY:String;

        x,y:real;

        gd,gm:integer;

    Begin

gd:=0;

InitGraph(gd.gm,'G:\');

     x:=24.7;    y:=5.8;

   Str(x,SX);

   Str(y,SY);

   OutText(100,100,`x=`+SX);

   OutText(200,200,`y=`+SY);

Readln;

CloseGraph;

End.

Розмір букв і масштабування штрихових шрифтів.

Визначення розміру букв і рядків

У деяких завданнях виникає необхідність визначити ширину і висоту рядків, що виводяться, або букв в пікселях, для цієї мети існують функції:

TextHeight(TextString:String):Word

          TextWidth(TextString:String):Word

Ці функції повертають висоту і ширину рядка Textstring в пікселях.

Наприклад

Const

        My.Str=`Grafika`;

Var

    X,y,xx,yy:Word;

     …

     

    y:=TextHeight(my_Str);

    x:=TextWidth(my_Str);

    xx:=TextHeight(`D`);

     yy:=TextWidth(`D`);

Масштабування штрихових шрифтів.

Розмір букв (висота і ширина) штрихових шрифтів може задаватися процедурою

SetUserCharSize(x,dx,y,dy:Word).

Вона міняє розмір шрифту, встановлений в Settextstyle.

Відношення x/dx задає масштабування ширини викреслюваного шрифту, а відношення y/dy виражає масштаб зміни висоти шрифту.

Наприклад, завдання параметрів x=3 і dx=1, говорить про те, що букви штрихового шрифту, що виводиться, будуть в 3 рази ширше за норму.

Settextstyle(Sansserif, Horizdir,4);{4-нормальний розмір}

Outtext(`Нормальний розмір`);

Setusersize(3,1,1,1);

Outtextxy(50,100,`текст збільшений по ширині`);

Setusersize(1,1,1,2);

Outtextxy(50,200,`текст зменшений по висоті`);

Опит стилю або орієнтації шрифтів.

Повну інформацію про поточний режим тексту, що виводиться, можна отримати, використовуючи  процедуру

          GetTextSettings(Var Settings:TextSettingsType).

У параметрі Settings вона повертає вичерпну інформацію про все, що відноситься до виведення рядків.

Тип цього параметра зумовлений в модулі Graph :

  Type 

         Textsettingstype=record

         Font;                  {номер шрифту}

         Direction;          {напрям}

         Charsize;          {розмір шрифту}

          Horiz;               { орієнтація по х}

         Vert:word;       { орієнтація по у}

                                        End;

Вирівнювання тексту

У ряді завдань необхідно в тексті виводити символи вище або нижче щодо один одного (наприклад, показати ступінь числа або індекс), тобто необхідно провести орієнтування рядка щодо поточної позиції курсора.

Орієнтування строки щодо поточної позиції курсора.

задається процедурою:

  SetTextJustify(Horizontal,Vertical:Word).

Параметри цієї процедури можуть приймати  одне з трьох  оголошених в модулі Graph значень:

Const

{ Для  горизонтального орієнтування (Horizontal ) }

LeftText=0;     { координата X задає лівий край рядка}

Centertext=1;   { координата X задає середину рядка}

Righttext=2;    { координата X задає правий край рядка}

              { Для  вертикального орієнтування (Vertical )}

Bottomtext=0;   { координата Y задає нижній край рядка}

Centertext=1;     { координата Y задає середину рядка}

Toptext=2;        { координата Y задає верхній край рядка}

Наприклад, вивести на екран  xn     і  x2.

               X n

SetTextStyle(0,0,2); { горизонтально-матричне збільшення в 2  рази}                       Settextjustify(1,1);    { орієнтація по центру рядка}

Outtextxy(100,100,`x`);

Settextjustify(1,0);        {x-центр,y-нижній край}

Outtextxy(115,100,`r`);

X2

SetTextStyle(0,0,2);{ горизонтально-матричне збільшення в 2  рази}

Settextjustify(1,1);         { центрування по x і у}

Outtextxy(200,100,`x`);  {x-центр,y-верхній край рядка}

Outtextxy(215,100,`2`);


 

А также другие работы, которые могут Вас заинтересовать

27962. Этапы развития психики в филогенезе: сенсорная психика, перцептивная психика, стадия интеллекта 26.14 KB
  Этапы развития психики в филогенезе: сенсорная психика перцептивная психика стадия интеллекта. Проблема возникновения психики в эволюции. С самого начала существует устойчивая связь психики ребёнка и психики матери.
27963. Функции и эмпирические характеристики сознания 344.54 KB
  Роль референтной группы в процессе социализации на различных онтогенетических этапах становления личности. Роль референтной группы в процессе социализации на различных онтогенетических этапах становления личности. Данная группа стандарт система отсчета для оценки себя и других служит ориентиром на разных этапах социализации ребёнка. В начале 70х годов ролевая концепция социализации функциональный подход которую отстаивают и активно развивают представители так называемой гуманитарной педагогики : Р.
27964. Системный подход к решению психофизиологической проблемы 26.99 KB
  идеи о функциональном единстве мозга и его связи с поведением и психикой начали возникать более 100 лет назад. В конце прошлого века в основном в русле клинической неврологии стали высказываться идеи о единстве функционирования частей мозга и связи этого единства с умственными возможностями человека. Он стойко придерживался взгляда что в коре мозга нет такого поля которое бы не принимало участия в осуществлении интеллектуальных функций [2]. Микросистемы сопоставимы с отдельными структурными образованиями мозга.
27965. Краткая история проблемы мозговой локализации психических функций 26.04 KB
  Краткая история проблемы мозговой локализации психических функций. Центральная проблема нейропсихологии проблема локализации высших психических функций связана с решением вопроса о том какова мозговая география различных психических функций и как исследуя нарушения психических функций при повреждениях мозга установить их причину и локализацию в головном мозге. Такое определение позволяет сформулировать центральные вопросы нейропсихологии: 1 теоретический в соответствии с какими принципами и как размещаются в мозге человека...
27966. Рефлекс и реактивное поведение. Трехфакторная модель «значимого другого»: основные положения и методическое обеспечение 22.96 KB
  Важно чтобы мозг животного был свободен от других видов деятельности то есть его не должна отвлекать какаято посторонняя потребность и находиться на определенном уровне возбуждения На фоне различных видов тороможения или отвлекающих факторов обучение происходит медленно или не происходит вовсе. Кооперация необходимый элемент совместной деятельности порожденный ее особой природой. Леонтьев называл две основные черты совместной деятельности: разделение единого процесса деятельности между участниками; изменение деятельности...
27967. Предметный образ и его семантическая многоуровневость 84.99 KB
  Поскольку состояние контактного взаимодействия анализатора с раздражителем непосредственно заключающее в себе ввиду своей двусторонности основу предметного изображения имеет место именно в осязании и прежде всего в тактильных ощущениях постольку простейший предметный образ формируется как рефлекторный эффект деятельности кожномеханического анализатора. На высших уровнях осязательной репрезентации состояние взаимодействия рецептора с раздражителем осуществляется и поддерживается на основе активной деятельности руки как специфического...
27968. Психофизическая зависимость и психофизическая функция 40.9 KB
  Типы и способы межличностоной и межгрупповой коммуникации. Типы и способы межличностоной и межгрупповой коммуникации. Когда говорят о коммуникации в узком смысле слова то прежде всего имеют в виду тот факт что в ходе совместной деятельности люди обмениваются между собой различными представлениями идеями интересами настроениями чувствами установками и пр. Все это можно рассматривать как информацию и тогда сам процесс коммуникации может быть понят как процесс обмена информацией.
27969. Восприятие пространства и удаленности; монокулярные и бинокулярные признаки глубины 30.95 KB
  Восприятие пространства и удаленности; монокулярные и бинокулярные признаки глубины Чувственное отражение субъективный познавательный процесс и результат этого процесса где объективное познание выступает в виде чувственной формы а именно в виде ощущений восприятий и представлений компоненты чувственного отражения. Восприятие 1 субъективный образ предмета явления или процесса непосредственно воздействующего на анализатор или систему анализаторов перцептивный образ или образ восприятия 2 процесс формирования образа предмета или...
27970. Восприятие как процесс категоризации в трудах Дж. Брунера 36.92 KB
  Личность и психика развитие личности и развитие психики: соотношение понятий. Личность и психика развитие личности и развитие психики: соотношение понятий. Понятие личности обозначает человеческого индивида как члена общества обобщает интегрированные в нем социально значимые черты. Петровский Ярошевский Развитие личности процесс качественных психологических личностных изменений в личности а также результат этих изменений.