Составте програму чтобы на икран выводилась кортинка и состояла из 80 строчек паскаль uses graphabc нужно ипользовать
Составте програму чтобы на икран выводилась кортинка и состояла из 80 строчек паскаль uses graphabc нужно ипользовать
Ответ(ы) на вопрос:
Гость
В этом разделе сайта progmatem.ru для рисования различных геометрических фигур в Паскале нам нам понадобится среда PascalABC.Net или PascalABC. Будут также привены рабочие программы в средах Turbo Pascal и Free Pascal. Вообще Паскаль хорош тем, что позволяет не только писать простые и/или сложные консольные приложения, но и работать с формами (как в Delphi), а также создавать графические приложения с помощью подключаемого модуля GraphABC (аналог модуля graph в Turbo Pascal, Free Pascal). Ведь для того и создавалась среда PascalABC.Net – как учебное пособие при переходе на Delphi – более совершенную версию Object Pascal.
При работе с графическим окном нужно учитывать две особенности. Во-первых, начало координат – точка (0, 0) – находится не где-то посредине окна, а в левом верхнем углу. Вторая особенность связана с первой: положительное направление оси OY показывает не вверх, а вниз (OX направлена вправо). Как мы видим, система координат в графическом окне Pascal отлична от той, к которой мы привыкли в математике – т.н. правой системе координат, в которой ось OX направлена вправо, ось OY – вверх, а начало координат, как правило, всегда стоит где-то посредине окна. И к этой особенности надо привыкать.
Система координат в графическом окне Паскаля
Но что делать, если требуется нарисовать геометрическую фигуру или график функции в «нормальной», привычной для нас системе координат? Надо выполнить преобразование системы координат таким образом, чтобы точка (0, 0) находилась посредине окна (в любой нужной точке), а ось OY была направлена вверх. Стандартное преобразование в прямоугольной правой системе координат выглядит следующим образом:
Стандартное преобразование координат
Здесь x0 и y0 – координаты точки, в которую мы хотим перенести начало координат новой системы, x и y – координаты точки в старой системе, x1 и y1 – координаты точки в новой системе. Но поскольку ось OY в графическом окне Паскаля направлена вниз, то для её разворота вверх нужно, естественно, знак координаты y поменять на противоположный (вместо y поставить -y). Таким образом, окончательно получим преобразование координат в графическом окне PascalABC.Net:
Преобразование координат в графическом окне Pascal
В результате последних преобразований вышеуказанная система координат будет иметь следующий вид:
Система координат после преобразования
Как мы видим, здесь начало координат перемещено в центр графического окна, а ось OY направлена вверх. В результате этого стали доступны не только положительные координаты, но также отрицательные.
Напишем простую программу, демонстрирующую все вышесказанное. Для этого, забегая наперед, укажем три полезные в графическом режиме PascalABC.Net процедуры:
TextOut(x,y,s) – Вывод текста в графическое окно. При этом текст (строка s) записывается в прямоугольную область таким образом, что точка с координатами (x, y) находится в левом верхнем углу первой буквы;
Line(x1,y1,x2,y2) – Проводит отрезок от точки (x1, y1) до точки (x2, y2);
Circle(x,y,r) – Рисует окружность с центром (x, y) и радиусом r.
Программа рисует окружность относительно графического окна (x0 = 0, y0 = 0), а через 3 секунды эта окружность появляется относительно нарисованной в центре системы координат. Перепишите эту программу в среду PascalABC.Net и запустите. Вот, собственно, сам код:
Код Pascal, PascalABC.Net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
uses
GraphABC;
const
r = 90; //радиус окружности
var
x0, y0, x, y: integer;
begin
{ Начало координат: }
x0 := WindowWidth div 2; //половина ширины окна
y0 := WindowHeight div 2; //половина высоты окна
x := 100; y := 100; //координаты центра окружности
Line(x0 - 250, y0, x0 + 250, y0); //ось OX
Line(x0, y0 - 200, x0, y0 + 200); //ось OY
Circle(x, y, r); //окружность с центром (x, y) и радиусом r
Circle(x, y, 2); //центр окружности (маленькая окружность)
TextOut(x + 5, y, '(100, 100)');//надпись возле центра окружности
sleep(3000); //делаем паузу на 3 секунды
ClearWindow; //очищаем графическое окно белым цветом
Line(x0 - 250, y0, x0 + 250, y0); //ось OX
Line(x0, y0 - 200, x0, y0 + 200); //ось OY
{ Делаем преобразование координат: }
x := x0 + x;
y := y0 - y;
{ Рисуем окружность, центр окружности и надпись: }
Circle(x, y, r);
Circle(x, y, 2);
TextOut(x + 5, y, '(100, 100)');
end.
Здесь необходимо сделать некоторые пояснения:
WindowWidth - ширина графического окна;
WindowHeight - высота графического окна (в пикселях);
ClearWindow - эта процедура очищает окно белым цветом;
sleep(ms) - задержка (пауза) на ms миллисекунд.
На следующей странице мы рассмотрим самое элементарное понятие в графике Паскаля – точки и пиксели, а также укажем полезные процедуры для работы с ними.
Не нашли ответ?
Похожие вопросы