Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Для построения графиков

Введение | Глава 1 | Рисование узоров | В случайных местах | Движение двоичного образа по фоновой картинке | В динамических приложениях | Перемещение картинок | События от мыши | Движение образа по удерживанию левой кнопки мыши | Код клавиши |


Читайте также:
  1. Анализ логической структуры текстов рассуждений. Приемы их построения
  2. Бюджетная система и принципы ее построения. Основные направления бюджетной политики РФ на трехлетний период.
  3. В переходный период и для построения Будущей России
  4. В) принципы построения организационных структур;
  5. Введение. Принципы построения волоконно-оптической систем передачи.
  6. Виды построения композиции в оформительских работах.
  7. Вопрос 21. Принципы построения цифровых синтезаторов частоты. Прямой цифровой синтезатор частоты.

Постановка задачи. Нарисовать координатную сетку, как показано на рис. 10.

Реализация. Напишем процедуру setka (x0, y0, mx, my: integer)
с входными параметрами x 0, y 0 – координаты начала системы координат; mx, my – шаги координатной сетки в пикселях.

 

Рис. 10. Координатная сетка

 

procedure setka(x0, y0, mx, my:integer);

// x0, y0 - координаты начала системы координат

var lx, ly:real; // метки (оцифровка) линий сетки

dlx, dly:real; // шаг меток (оцифровки) линий сетки

x,y:integer;

cross:integer; счетчик неоцифрованных линий

begin

dlx:=0.5; // шаг меток оси X

dly:=1.0; // шаг меток оси Y, метками будут: 1, 2, 3 и т. д.

with form1.Canvas do

begin

cross:=dcross;

MoveTo(x0,y0); LineTo(x0,y0-h); // ось X

MoveTo(x0,y0); LineTo(x0+w,y0); // ось Y

// засечки, сетка и оцифровка оси X

x:=x0+mx;

lx:=dlx;

repeat

MoveTo(x,y0-3);LineTo(x,y0+3); // засечка

cross:=cross-1;

if cross = 0 then // оцифровка

begin

TextOut(x-8,y0+5,FloatToStr(lx));

cross:=dcross;

end;

Pen.Style:=psDot;

MoveTo(x,y0-3);LineTo(x,y0-h); // линия сетки

Pen.Style:=psSolid;

lx:=lx+dlx;

x:=x+mx;

until (x>x0+w);

 

// засечки, сетка и оцифровка по оси Y

y:=y0-my;

ly:= dly;

repeat

MoveTo(x0-3,y);LineTo(x0+3,y); // засечка

TextOut(x0-20,y,FloatToStr(ly)); // оцифровка

Pen.Style:=psDot;

MoveTo(x0+3,y); LineTo(x0+w,y); // линия сетки

Pen.Style:=psSolid;

y:=y-my;

ly:=ly+dly;

until (y<y0-h);

end;

end;

Вернемся к способам вывода изображения на форму. Третий способ вывода изображения сразу же при запуске приложения заключается в следующем. Выберите событие формы OnPaint. Справа нажмите на стрелочку и выберите строку FormCreate. Тогда, если напишем в коде процедуры FormCreate вызов процедуры Setka,
то рисунок появится на форме сразу после запуска проекта. Ниже приведен код процедуры FormCreate:

 

procedure TForm1.FormCreate(Sender: TObject);

begin

mx:=25;

my:=25;

dcross:=1; // помечать линии сетки X: 1 – каждую;

// 2 – через одну;

// 3 – через две;

h:=7*my;

w:=14*mx;

setka(30,200,mx,my);

end;

 

Задание 1. Измените переменную dlx так, чтобы метки по оси Х тоже были через 1.

 

Задание 2. Упростите процедуру setka (x0, y0, mx, my: integer) так, чтобы координатная сетка была пригодна для построения графиков элементарных функций (примерный вид приведен на рис. 11). Новую процедуру setka назовите koord_setka.

 

Рис. 11. Оси координат и сетка

 


Дата добавления: 2015-08-20; просмотров: 61 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Рисование поля для различных игр| Построение графиков элементарных функций

mybiblioteka.su - 2015-2024 год. (0.005 сек.)