Главная » Учебные материалы » Информатика » Лабораторные работы » ВолГУ » Несколько классов/семестров » Номер 9 » Вариант А1 » Компоненты TChart и TPointBox - Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart. Построить кривую в полярных системах координатах, заданную уравнением с помощью компонента TPointBox.
Для студентов ВолГУ по предмету ИнформатикаКомпоненты TChart и TPointBox - Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart. Построить кривую в полКомпоненты TChart и TPointBox - Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart. Построить кривую в пол
2024-01-17СтудИзба

Компоненты TChart и TPointBox - Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart. Построить кривую в полярных системах координатах, заданную уравнением с помощью компонента TPointBox.

Описание

Лабораторная работа №9. Задание а-1, б-4. ЛР Компоненты TChart и TPointBox.
Можно переделать под свой вариант.
Цель работы: Научиться строить графики в среде Lazarus с помощью компонентов TСhart и TPointBox.
/ задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023

Условия для программы, под которые она выполнена:
Задание для самостоятельной работы
a) Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart:
б) Построить кривую в полярных системах координатах, заданную уравнением с помощью компонента TPointBox:
4. 𝑟 = 2(1 + 𝑐𝑜𝑠𝜑) (Кардиоида)

Программа в сделанном виде:











Лабораторная работа № 9

Компоненты TChart и TPointBox.

Цель работы: Научиться строить графики в среде Lazarus с помощью компонентов TСhart и TPointBox.

Теоритическая часть:

Компонент TChart

Для построения различных графиков и диаграмм в Lazarus можно воспользоваться компонентом TChart расположенный на вкладке Chart. Основным свойством компонента является Series – наборы данных (серии), на основе которых и строятся графики или диаграммы. Если дважды щелкнуть по компоненту, размещенному на форме, то мы попадем в редактор серий, рис.1.











Рис.1 Редактор серий


Существуют разные типы Series для построения разных типов графиков или диаграмм, например Line series – для построения линий (графиков), Pie series – для построения круговых диаграмм и т.д.

Если выберите тип серии Line series, то в инспекторе объектов появится объект ChartLineSeries1 типа TLineSeries.





Рис.2 Инспектор объектов

Для того, чтобы создать программно объект типа TLineSeries можно воспользоваться оператором

Chart1LineSeries1:= TLineSeries.Create(Chart1);

Для добавления серии в TChart существует метод:

procedure AddSeries(ASeries: TBasicChartSeries);

Добавление точек в объект типа TLineSeries производится с помощью функции

function AddXY(X, Y: Double): Integer;

Свойство ShowPoints: boolean позволяет показывать или не показы- вать точки на графике.

Свойство SeriesColor: TColor позволяет указать цвет линии.


Пример 1: С помощью компонента Tchart вывести график функции y = sin(x).

Листинг программы:





Рис.3 Интерфейс программы реализующий построение графика функции y = sin(x)

procedure TForm1.BitBtn1Click(Sender: TObject); var

i, n: integer; Chart1LineSeries1: TLineSeries; begin

n:= 100;

Chart1LineSeries1:= TLineSeries.Create(Chart1); Chart1LineSeries1.SeriesColor:= clRed; Chart1LineSeries1.ShowPoints:= false; Chart1.AddSeries(Chart1LineSeries1);


Chart1.Title.Visible:= true; Chart1.Title.Text.Text:= 'График функции sin(x)'; for i:= 0 to n - 1 do Chart1LineSeries1.AddXY(i*Pi*0.02, sin(i*Pi*0.02)); end;

Компонент TPointBox

Компонент Lazarus TPointBox находиться на странице Additional палитры компонентов. Он представляет из себя простое окно с канвой, где можно рисовать произвольные изображения. Графические инструменты содержаться в свойствах Font, Brush и Pen. Канва (холст) содержится в свойстве Canvas компонента. Само рисование программируется в обработчике события onPaint.

Пример 2. Создать в среде Lazarus проект, позволяющий построить график функции

у = х2 - 2, xÎ [-10 ; 10].

Для перехода от естественных координат к экранным воспользуемся формулами:

х1 = Ox + Мx∙х. у1 = Oy - Мy∙у ,

где х , у - естественные координаты, х1 , у1 - экранные координаты, (Ox, Oy) – экранная точка, выбранная в качестве начала координат, Mx , My - масштаб, т.е. длина единичных отрезков в пикселях.

Разработка проекта:

  1. Разместим на форме компоненты PaintBox1, Label1, Label2, Edit1, Edit2, Button1, Button2 как показано на рис.4.


Рис.4

  1. Создим процедуру для построения графика функции (двойной щелчок мышкой по Button1)

procedure TForm1.Button1Click(Sender: TObject); var

x1, y1, ox, oy, mx, my, i : integer; x, y: real;

begin

paintbox1.Canvas.Pen.Color:=clblue; //устанавливаем

// синий цвет пера

ox:=paintbox1.Width div 2; //начало координат размещаем

// в центре oy:=paintbox1.Height div 2; // компонента paintbox1} mx:=StrToInt(Edit1.Text); //масштаб по оси x my:=StrToInt(Edit2.Text); //масштаб по оси x paintbox1.Canvas.moveto(0, oy); //строим оси координат paintbox1.Canvas.LineTo(640, oy); paintbox1.Canvas.moveto(ox, 0);

paintbox1.Canvas.LineTo(ox, 480); for i:= -10 to 10 do begin

//разметка оси ox

x1:=ox+mx*i;


paintbox1.Canvas.moveto(trunc(x1), oy-5); paintbox1.Canvas.LineTo(trunc(x1), oy+5);

end;

for i:= -10 to 10 do begin

// разметка оси oy

y1:=oy-my*i;

paintbox1.Canvas.moveto(ox-5, trunc(y1)); paintbox1.Canvas.LineTo(ox+5, trunc(y1));

end;

paintbox1.Canvas.Pen.Color:=clred; //устанавливаем красный

//цвет пера}

x:= -10; y:=sqr(x)-2; //вычисляем координаты начальной

//точки графика}

x1:= trunc(ox+mx*x);

y1:= trunc(oy-my*y); //перевод в экранные координаты

paintbox1.Canvas.moveto(x1, y1); //перемещаем перо в эту

// точку

while x<=10 do

// построение графика функции

begin

y:=sqr(x)-2;

x1:= trunc(ox+mx*x); y1:= trunc(oy-my*y);

paintbox1.Canvas.LineTo(x1, y1); x:=x+0.1;

end;

end;

  1. Создадим процедуру для очистки формы от графика . Для этого кликним двойным щелчок мышкой по Button2 для того чтобы вызвать событие Click:

procedure TForm1.Button2Click(Sender: TObject); begin

paintbox1.Canvas.Pen.Color:=clblack; paintbox1.Canvas.Brush.Color:=clwhite;

paintbox1.Canvas.Rectangle(0,0,paintbox1.Width,paintbox1.Height)

;

end;

  1. Запустить проект и проверим его работу, задавая различный масштаб.

Задание для самостоятельной работы

  1. Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart:

  1. y =

  1. y =

  1. y =

1


1 - х

x


1 - х

1


, х Î[- 5;5];

, х Î[- 5;5];

, х Î[- 5;5];


  1. y


x - x 2

ln x 2

= , х

1 - х


Î[-


5;5];


  1. y =

cos x , х Î[- p ;p ]; 1 - х



  1. y =

cos x


sin 3x


, х Î[- p ;p ];


  1. y = sin x , х Î[- 2p ;2p ];

x


  1. y =

ctgx


sin 3x


, х Î[- p ;p ];


  1. y = (1 - x) ln x 2 , х Î[- 5;5];



y = 1 ln x 2 , х Î[- 5;5];

x



y = 1 - x ln x 2 , х Î[- 5;5];

x 2




y = cos x ln x 2 , х Î[- p ;p ];



y = 1 - x

(1 + x)2


, х Î[- 5;5];




y = (1 - x)(1 + 3x) , х Î[- 5;5]; (1 + x)2

1 + x 2



y = (1 + x)2


, х Î[- 5;5];



  1. y =

cos x , х Î[- 2p ;2p ]; sin 3x



  1. y =

, х Î[-

3x


5;5];



y = x 2


+ 1 , х Î[- 5;5];

x



y = 3x +


5 , х Î[- 5;5];

x 2




y = 1 - x , х Î[- 5;5];

x + 5x3


б) Построить кривую в полярных системах координатах, заданную уравнением с помощью компонента TPointBox:

  1. 𝑟 = 𝜑 (Спираль Архимеда)
  2. 𝑟 = 𝜋/𝜑 (Гиперболическая спираль)





𝜑
  1. 𝑟 = 2 2𝜋 (Логарифмическая спираль)
  2. 𝑟 = 2(1 + 𝑐𝑜𝑠𝜑) (Кардиоида)
  3. 𝑟 = 10 𝑠𝑖𝑛3𝜑 (Четырехлепестковая роза)
  4. 𝑟2 = 36 𝑐𝑜𝑠2𝜑 (Лемниската Бернулли)
  5. 𝜑 = 2𝜋 𝑠𝑖𝑛𝑟
  6. 𝑟 = 10 𝑐𝑜𝑠4𝜑 (Роза)
  7. 𝑟 = 10 𝜑2 (Спираль Галилео)

10.𝑟2 = 36 𝜑 (Спираль Ферма)

11.𝑟 = 10 𝑠𝑖𝑛2𝜑(Трехлепестковая роза)

12.𝑟 = 41 sin(𝜑/3) Роза

13.𝑟 = 26 sin(4 𝜑/3) Роза

14.𝑟 = 16 sin(𝜑/2) Роза

15.𝑟 = 14 sin(5𝜑/3) Роза

16. 𝑟 = 24 sin2(𝜑) /𝑐𝑜𝑠(𝜑) Циссоида

17.𝑟 = 33 cos(𝜑) + 14 Улитка Паскаля

Примечание

Для перехода от полярных систем координат к декартовым, необходимо воспользоваться следующими формулами:

x = r∙cos j

y = r∙ sin j, где x, y - декардовые координаты.

Переходя к экранным координатам, получим соотношения: xэ = Ox + Mx∙r ∙cos j

yэ = Oy - My∙r∙sin j






Показать/скрыть дополнительное описание

Лабораторная работа №9. Задание а-1, б-4. ЛР Компоненты TChart и TPointBox. Можно переделать под свой вариант. Цель работы: Научиться строить графики в среде Lazarus с помощью компонентов TСhart и TPointBox. / задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023 Условия для программы, под которые она выполнена: Задание для самостоятельной работы a) Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart: б) Построить кривую в полярных системах координатах, заданную уравнением с помощью компонента TPointBox: 4.

𝑟 = 2(1 + 𝑐𝑜𝑠𝜑) (Кардиоида) Программа в сделанном виде: Лабораторная работа № 9 Компоненты TChart и TPointBox. Цель работы: Научиться строить графики в среде Lazarus с помощью компонентов TСhart и TPointBox. Теоритическая часть: Компонент TChart Для построения различных графиков и диаграмм в Lazarus можно воспользоваться компонентом TChart расположенный на вкладке Chart. Основным свойством компонента является Series – наборы данных (серии), на основе которых и строятся графики или диаграммы. Если дважды щелкнуть по компоненту, размещенному на форме, то мы попадем в редактор серий, рис.1. Рис.1 Редактор серий Существуют разные типы Series для построения разных типов графиков или диаграмм, например Line series – для построения линий (графиков), Pie series – для построения круговых диаграмм и т.д.

Если выберите тип серии Line series, то в инспекторе объектов появится объект ChartLineSeries1 типа TLineSeries. Рис.2 Инспектор объектов Для того, чтобы создать программно объект типа TLineSeries можно воспользоваться оператором Chart1LineSeries1:= TLineSeries.Create(Chart1); Для добавления серии в TChart существует метод: procedure AddSeries(ASeries: TBasicChartSeries); Добавление точек в объект типа TLineSeries производится с помощью функции function AddXY(X, Y: Double): Integer; Свойство ShowPoints: boolean позволяет показывать или не показы- вать точки на графике. Свойство SeriesColor: TColor позволяет указать цвет линии. Пример 1: С помощью компонента Tchart вывести график функции y = sin(x).

Листинг программы: Рис.3 Интерфейс программы реализующий построение графика функции y = sin(x) procedure TForm1.BitBtn1Click(Sender: TObject); var i, n: integer; Chart1LineSeries1: TLineSeries; begin n:= 100; Chart1LineSeries1:= TLineSeries.Create(Chart1); Chart1LineSeries1.SeriesColor:= clRed; Chart1LineSeries1.ShowPoints:= false; Chart1.AddSeries(Chart1LineSeries1); Chart1.Title.Visible:= true; Chart1.Title.Text.Text:= \'График функции sin(x)\'; for i:= 0 to n - 1 do Chart1LineSeries1.AddXY(i*Pi*0.02, sin(i*Pi*0.02)); end; Компонент TPointBox Компонент Lazarus TPointBox находиться на странице Additional палитры компонентов. Он представляет из себя простое окно с канвой, где можно рисовать произвольные изображения.

Графические инструменты содержаться в свойствах Font, Brush и Pen. Канва (холст) содержится в свойстве Canvas компонента. Само рисование программируется в обработчике события onPaint. Пример 2. Создать в среде Lazarus проект, позволяющий построить график функции у = х2 - 2, xÎ [-10 ; 10]. Для перехода от естественных координат к экранным воспользуемся формулами: х1 = Ox + Мx∙х. у1 = Oy - Мy∙у , где х , у - естественные координаты, х1 , у1 - экранные координаты, (Ox, Oy) – экранная точка, выбранная в качестве начала координат, Mx , My - масштаб, т.е. длина единичных отрезков в пикселях. Разработка проекта: Разместим на форме компоненты PaintBox1, Label1, Label2, Edit1, Edit2, Button1, Button2 как показано на рис.4.

Рис.4 Создим процедуру для построения графика функции (двойной щелчок мышкой по Button1) procedure TForm1.Button1Click(Sender: TObject); var x1, y1, ox, oy, mx, my, i : integer; x, y: real; begin paintbox1.Canvas.Pen.Color:=clblue; //устанавливаем // синий цвет пера ox:=paintbox1.Width div 2; //начало координат размещаем // в центре oy:=paintbox1.Height div 2; // компонента paintbox1} mx:=StrToInt(Edit1.Text); //масштаб по оси x my:=StrToInt(Edit2.Text); //масштаб по оси x paintbox1.Canvas.moveto(0, oy); //строим оси координат paintbox1.Canvas.LineTo(640, oy); paintbox1.Canvas.moveto(ox, 0); paintbox1.Canvas.LineTo(ox, 480); for i:= -10 to 10 do begin //разметка оси ox x1:=ox+mx*i; paintbox1.Canvas.moveto(trunc(x1), oy-5); paintbox1.Canvas.LineTo(trunc(x1), oy+5); end; for i:= -10 to 10 do begin // разметка оси oy y1:=oy-my*i; paintbox1.Canvas.moveto(ox-5, trunc(y1)); paintbox1.Canvas.LineTo(ox+5, trunc(y1)); end; paintbox1.Canvas.Pen.Color:=clred; //устанавливаем красный //цвет пера} x:= -10; y:=sqr(x)-2; //вычисляем координаты начальной //точки графика} x1:= trunc(ox+mx*x); y1:= trunc(oy-my*y); //перевод в экранные координаты paintbox1.Canvas.moveto(x1, y1); //перемещаем перо в эту // точку while x<=10 do // построение графика функции begin y:=sqr(x)-2; x1:= trunc(ox+mx*x); y1:= trunc(oy-my*y); paintbox1.Canvas.LineTo(x1, y1); x:=x+0.1; end; end; Создадим процедуру для очистки формы от графика .

Для этого кликним двойным щелчок мышкой по Button2 для того чтобы вызвать событие Click: procedure TForm1.Button2Click(Sender: TObject); begin paintbox1.Canvas.Pen.Color:=clblack; paintbox1.Canvas.Brush.Color:=clwhite; paintbox1.Canvas.Rectangle(0,0,paintbox1.Width,paintbox1.Height) ; end; Запустить проект и проверим его работу, задавая различный масштаб. Задание для самостоятельной работы Создать в среде Lazarus проект, позволяющий строить график функции с помощью компонента TChart: y = y = y = 1 1 - х x 1 - х 1 , х Î[- 5;5]; , х Î[- 5;5]; , х Î[- 5;5]; y x - x 2 ln x 2 = , х 1 - х Î[- 5;5]; y = cos x , х Î[- p ;p ]; 1 - х y = cos x sin 3x , х Î[- p ;p ]; y = sin x , х Î[- 2p ;2p ]; x y = ctgx sin 3x , х Î[- p ;p ]; y = (1 - x) ln x 2 , х Î[- 5;5]; y = 1 ln x 2 , х Î[- 5;5]; x y = 1 - x ln x 2 , х Î[- 5;5]; x 2 y = cos x ln x 2 , х Î[- p ;p ]; y = 1 - x (1 + x)2 , х Î[- 5;5]; y = (1 - x)(1 + 3x) , х Î[- 5;5]; (1 + x)2 1 + x 2 y = (1 + x)2 , х Î[- 5;5]; y = cos x , х Î[- 2p ;2p ]; sin 3x y = , х Î[- 3x 5;5]; y = x 2 + 1 , х Î[- 5;5]; x y = 3x + 5 , х Î[- 5;5]; x 2 y = 1 - x , х Î[- 5;5]; x + 5x3 б) Построить кривую в полярных системах координатах, заданную уравнением с помощью компонента TPointBox: 𝑟 = 𝜑 (Спираль Архимеда) 𝑟 = 𝜋/𝜑 (Гиперболическая спираль) 𝜑 𝑟 = 2 2𝜋 (Логарифмическая спираль) 𝑟 = 2(1 + 𝑐𝑜𝑠𝜑) (Кардиоида) 𝑟 = 10 𝑠𝑖𝑛3𝜑 (Четырехлепестковая роза) 𝑟2 = 36 𝑐𝑜𝑠2𝜑 (Лемниската Бернулли) 𝜑 = 2𝜋 𝑠𝑖𝑛𝑟 𝑟 = 10 𝑐𝑜𝑠4𝜑 (Роза) 𝑟 = 10 𝜑2 (Спираль Галилео) 10.𝑟2 = 36 𝜑 (Спираль Ферма) 11.𝑟 = 10 𝑠𝑖𝑛2𝜑(Трехлепестковая роза) 12.𝑟 = 41 sin(𝜑/3) Роза 13.𝑟 = 26 sin(4 𝜑/3) Роза 14.𝑟 = 16 sin(𝜑/2) Роза 15.𝑟 = 14 sin(5𝜑/3) Роза 16.

𝑟 = 24 sin2(𝜑) /𝑐𝑜𝑠(𝜑) Циссоида 17.𝑟 = 33 cos(𝜑) + 14 Улитка Паскаля Примечание Для перехода от полярных систем координат к декартовым, необходимо воспользоваться следующими формулами: x = r∙cos j y = r∙ sin j, где x, y - декардовые координаты. Переходя к экранным координатам, получим соотношения: xэ = Ox + Mx∙r ∙cos j yэ = Oy - My∙r∙sin j      .

Файлы условия, демо

Лабораторная работа No 9 КомпонентыTChartи TPointBox..pdf

Характеристики лабораторной работы

Учебное заведение
Номер задания
Вариант
Просмотров
4
Покупок
0
Размер
53,52 Mb

Список файлов

    Картинка-подпись
    Ваше экономие времени является моей ГЛАВНОЙ задачей! Если я Вам хоть чуть-чуть помог, пожалуйста, сделайте и мне приятное, оставьте 5 ЗВЁЗД и позитивный комментарий. Большое спасибо!

    Комментарии

    Поделитесь ссылкой:
    Базовая цена: 349 руб.
    Перепишу данный код под Ваше условие Услуга за 349 руб.
    Расширенная гарантия +3 недели гарантии, +10% цены
    Рейтинг-
    0
    0
    0
    0
    0
    Поделитесь ссылкой:
    Сопутствующие материалы
    Свежие статьи
    Популярно сейчас
    Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
    Ответы на популярные вопросы
    Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
    Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
    Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
    Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
    Отзывы студентов
    Ставлю 10/10
    Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
    Лучшая платформа для успешной сдачи сессии
    Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
    Студизба ван лав ❤
    Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
    Отличный сайт
    Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
    Маленький отзыв о большом помощнике!
    Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
    Студ. Изба как крупнейший сборник работ для студентов
    Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
    Спасательный островок
    Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
    Всё и так отлично
    Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
    Отзыв о системе "Студизба"
    Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
    Отличный помощник
    Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
    Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
    Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
    Спасибо за шикарный сайт
    Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
    Популярные преподаватели
    Добавляйте материалы
    и зарабатывайте!
    Продажи идут автоматически
    5160
    Авторов
    на СтудИзбе
    439
    Средний доход
    с одного платного файла
    Обучение Подробнее