Доброго времени суток.
Вот кусок из рабочего проекта. Разберитесь и пользуйтесь.
program DrawGrid;
uses Crt, Graph;
const
PathToDriver = 'D:\BP\bgi'; {путь к каталогу с файлами *.bgi}
Hint = 'Esc - Exit';
var
Gd,Gm : Integer;
xMin, xMax, yMin, yMax : Real;
procedure DrawGrid(Msg: String; Grid: Boolean);
const
HorStart = 39;
HorEnd = 639;
VertStart = 25;
VertEnd = 425;
ColorGrid = DarkGray;
ColorAxes = LightRed;
ColorNum = Green;
ColorMsg = LightGray;
var
CurrentLine : Integer;
GridLine : Integer;
Digit,Point : Integer;
AnyStr : String;
GridNum : Real;
Ts : TextSettingsType;
C : Word;
begin
SetViewPort(0, 0, HorEnd, VertEnd+34, ClipOn);
GetTextSettings(Ts);
C := GetColor;
ClearViewPort;
SetColor(ColorMsg);
OutTextXY(0, VertEnd+25, Msg);
SetTextStyle(SmallFont, HorizDir, 4);
{ Draw Hor Lines }
Digit := 4;
Point := 2;
CurrentLine := VertStart;
for GridLine:=0 to 10 do begin
if GridLine = 10 then begin
SetColor(ColorAxes);
SetWriteMode(NormalPut);
end
else begin
SetColor(ColorGrid);
SetWriteMode(XORPut);
end;
if not Grid then begin
if (GridLine = 10) then Line(HorStart, CurrentLine, HorEnd, CurrentLine);
end
else Line(HorStart+1, CurrentLine, HorEnd, CurrentLine);
GridNum := yMax - (Round(yMax - yMin) * GridLine) / 10;
Str(GridNum:Digit:Point, AnyStr);
if GridNum >= 0 then Insert(' ', AnyStr, 1);
SetColor(ColorNum);
SetWriteMode(NormalPut);
OutTextXY(0, CurrentLine - 3 * TextHeight('H') div 4, AnyStr);
Inc(CurrentLine, (VertEnd - VertStart) div 10);
end;
{ Draw Vert Lines }
Digit := 4;
Point := 2;
CurrentLine := HorStart;
for GridLine:=0 to 10 do begin
if GridLine = 0 then begin
SetColor(ColorAxes);
SetWriteMode(NormalPut);
end
else begin
SetColor(ColorGrid);
SetWriteMode(XORPut);
end;
if not Grid then begin
if GridLine = 0 then Line(CurrentLine, VertStart, CurrentLine, VertEnd-1);
end
else Line(CurrentLine, VertStart, CurrentLine, VertEnd-1);
GridNum := xMin + ((Round(xMax - xMin) * GridLine) / 10);
Str(GridNum:Digit:Point, AnyStr);
if GridNum >= 0 then Insert(' ', AnyStr, 1);
SetColor(ColorNum);
SetWriteMode(NormalPut);
OutTextXY(CurrentLine-20, VertEnd+5, AnyStr);
Inc(CurrentLine, (HorEnd - HorStart) div 10);
end;
with Ts do SetTextStyle(Font, Direction, CharSize);
SetViewPort(HorStart, VertStart, HorEnd, VertEnd, ClipOn);
SetColor(C);
end;
begin
DetectGraph(Gd,Gm);
InitGraph(Gd, Gm, PathToDriver);
if GraphResult <> grOk then Halt(1);
{минимальные и максимальные значения для оцифровки}
xMin := 0; xMax := 10;
yMin := 0; yMax := 10;
DrawGrid(Hint, True);
repeat until ReadKey = #27;
CloseGraph;
end.
Удачи!
Другие языки программирования и технологии
написать программу которая выводит на экран оцифрованную координатную сетку!Нужно решение через Турбо Паскаль!
Похожие вопросы
- c++ цикл: for Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем.
- Напишите программу, которая выводит на экран все делители числа N, (число N вводится с клавиатуры) абсПАСКАЛЬ ПОМОГИТЕ
- C++ Помогите написать программу, которая выводит первые n простых чисел.
- Напишите программу, которая выводит запись переданного ей числа в римской системе счисления. Используйте процедуру. С++
- C++(консоль) Программа, которая выводит данные треугольников со стороной максимум 5000
- Написать программу работы с одномерным массивом из 15 вещественных элементов для решения задач:
- Напишите программу, которая находит максимальное среди чисел, записанных в файле, и выводит результат в другой файл.
- 1. Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные ч
- Необходимо написать программу, которая проверяет, является ли введенная с клавиатуры матрица трехдиагональной.
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .