Построение электрических схем в С++Builder

Характеристика методов изображения графических элементов. Особенности вычерчивания прямой линии, прямоугольника, окружности, дуги. Порядок вывода текста на канву. Текст программы для построения электрической схемы на языке программирования C++Builder.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 25.10.2012
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Задание

программа графический электрическая схема

Составить программу на языке программирования C++Builder для построения электрической схемы, изображенной на рис.1

Рисунок 1-Исходная схема

Теоретические сведения

Методы изображения графических элементов

Любая картинка, чертеж или схема могут рассматриваться как совокупность графических примитивов. Примитивы, условно можно разделить на группы: примитивы рисования контуров и площадные фигуры. К примитивам контуров относятся: линии (line),прямоугольники (rectangle)Б дуги (arc), окружности (circle), эллипсы (ellipse), многоугольники (drawpoly) и прочие не закрашиваемые внутри фигуры.

К площадным, заполняемым внутри фигурам, относятся закрашиваемые прямоугольники (FillRect), круговые и эллиптические секторы (Pie). Если у вас рисуемая фигура замкнута, но не закрашиваемая, например, многоугольник (Poligon), то его всегда можно заштриховать с помощью функций закраски (FloodFill, FillStyle). Для выбора цвета рисования применяется функция задания цвета графических примитивов (Pen->Color).

Линия

Вычерчивание прямой линии выполняет метод LineTo. Метод рисует линию из той точки, в которой в данный момент находится карандаш (эта точка называется текущей позицией карандаша или просто текущей), в точку, координаты которой указаны в инструкции вызова метода. Например, команда:

Image1->Canvas->LineTo(100,200);

Рисует линию в точку с координатами (100,200), после чего текущей становится точка с координатами (100,200).

Начальную точку линии можно задать, переместив карандаш в нужную точку графической поверхности. Это возможно сделать при помощи метода MoveTо, указав в качестве параметров, координаты точки начала линии. Например, операторы:

Image1->Canvas->MoveTo(10,10);

Image1->Canvas->LineTo(50,10);

Рисуют горизонтальную линию из точки (10,10) в точку (50,10).

Используя свойство текущей точки, можно нарисовать ломаную линию.

Например, операторы:

Image1->Canvas->MoveTo(10,10);

Image1->Canvas->LineTo(50,10);

Image1->Canvas->LineTo(10,20);

Image1->Canvas->LineTo(50,20);

Рисуют линию, похожую на букву Z.

Прямоугольник

Метод Rectangle вычерчивает прямоугольник. В инструкции вызова метода надо указать координаты двух точек - углов прямоугольника. Например, команда:

Image1->Canvas->Rectangle(10,10,50,50);

Рисует квадрат, левый верхний угол которого находится в точке (10,10), а правый нижний в точке (50,50).

Цвет, вид и ширину линии контура прямоугольника определяют значения свойства Pen, а цвет и стиль заливки области внутри прямоугольника - значение свойства Brush той поверхности, на которой метод рисует прямоугольник.

Есть еще два метода, которые вычерчивают прямоугольник. Метод FillRect вычерчивает закрашенный прямоуголник, используя в качестве инструмента только кисть (Brush), а метод FrameRect - только контур и использует только карандаш (Pen). У этих методов только один параметр - структура типа Rect.

Окружность в эллипс

Нарисовать эллипс или окружность (частный случай эллипса) можно при помощи метода Ellipse. Инструкция выхова метода в общем виде выглядит следующим образом:

Image1->Canvas->Ellipse(x1,y1,x2,y2)

Параметры x1,y1,x2,y2 определяют координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом,- окружность.

Вместо четырех параметров - координат диагональных углов прямоугольника - методу Ellipse можно передать один - объект типа Rect. Следующий фрагмент кода демонстрирует использование объекта TRect в качестве параметра метода Ellipse.

TRect rec=Rect(10,10,50,50);

Image1->Canvas->Ellipse(rec);

Как в случае вычерчивания других примитивов, вид контура эллипса (цвет, толщину и стильлинии) определяют значения свойства Pen, а цвет и стиль заливки области внутри эллипса - -значения свойства Brush той поверхности (Canvas), на которой метод чертит.

Дуга

Метод Arc рисует дугу - часть эллипса. Инструкция вызова метода в общем виде выглядит так:

Image1->Canvas->Arc(x1,y1,x2,y2,x3,y3,x4,y4);

Параметры x1,y1,x2,y2 определяют эллипс, частью которого является дуга. Параметры x3 и y3 задают начальную, а x4 и y4 - конечную точку дуги. Начальная (конечная) точка дуги - это точка пересечения границы эллипса и прямой, проведенной из центра эллипса в точку с координатами x3 и y3(x4,y4). Метод Arc вычерчивает дугу против часовой стрелки от начальной точки до конечной.

Текст

Вывод текста на канву предельно прост. Требуется только задать характеристики шрифта (свойства Font канвы) и текст в формате AnsiString. Вывод текста на поверхность графического объекта обеспечивает метод канвы TextOut(). Инструкция вызова метода TextOut в общем виде выглядит следующим образом:

Image1->Canvas->TextOut(x,y,Текст)

Параметр текст задает выводимый текст. Параметры x и y определяют координаты точки графической поверхности,от которой выполняется вывод текста.

Форма проекта

Текст программы

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{TPoint p[3];

p[0].x=150;p[0].y=40;

p[1].x=145;p[1].y=45;

p[2].x=155;p[2].y=45;

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Polygon(p,2);//отображает многоульник

Image1->Canvas->MoveTo(150,45);

Image1->Canvas->LineTo(150,65);

Image1->Canvas->Brush->Color=clWhite;

Image1->Canvas->Rectangle(155,65,145,90);//отображает прямоугольник

Image1->Canvas->MoveTo(150,90);

Image1->Canvas->LineTo(150,105);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(147,105,153,111);//отображает точка

Image1->Canvas->MoveTo(150,108);

Image1->Canvas->LineTo(170,108);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(167,105,173,111);

Image1->Canvas->MoveTo(170,108);

Image1->Canvas->LineTo(210,108);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(207,105,213,111);

Image1->Canvas->MoveTo(210,108);

Image1->Canvas->LineTo(220,108);

Image1->Canvas->Brush->Color=clWhite;

Image1->Canvas->Rectangle(220,103,245,113);

Image1->Canvas->MoveTo(245,108);

Image1->Canvas->LineTo(265,108);

Image1->Canvas->MoveTo(265,101); //конденсатор

Image1->Canvas->LineTo(265,115);

Image1->Canvas->MoveTo(268,101);//конденсатор

Image1->Canvas->LineTo(268,115);

Image1->Canvas->MoveTo(268,108);

Image1->Canvas->LineTo(290,108);

TPoint p1[3];

p1[0].x=295;p1[0].y=108;

p1[1].x=290;p1[1].y=103;

p1[2].x=290;p1[2].y=113;

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Polygon(p1,2);

Image1->Canvas->MoveTo(210,108);

Image1->Canvas->LineTo(210,125);

Image1->Canvas->MoveTo(203,125);//конденсатор

Image1->Canvas->LineTo(217,125);

Image1->Canvas->MoveTo(203,128);//конденсатор

Image1->Canvas->LineTo(217,128);

Image1->Canvas->MoveTo(210,128);

Image1->Canvas->LineTo(210,145);

Image1->Canvas->MoveTo(210,145);

Image1->Canvas->LineTo(170,145);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(167,143,173,149);

Image1->Canvas->MoveTo(170,111);

Image1->Canvas->LineTo(170,116);

Image1->Canvas->Arc(162,116,178,124,170,124,170,116);// дуга

Image1->Canvas->Arc(162,124,178,132,170,132,170,124);//дуга

Image1->Canvas->Arc(162,132,178,140,170,140,170,132);//дуга

Image1->Canvas->MoveTo(170,140);

Image1->Canvas->LineTo(170,145);

Image1->Canvas->MoveTo(147,108);

Image1->Canvas->LineTo(140,108);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(137,105,143,111);

Image1->Canvas->MoveTo(140,108);

Image1->Canvas->LineTo(140,125);

Image1->Canvas->MoveTo(137,108);

Image1->Canvas->LineTo(120,108);

Image1->Canvas->MoveTo(120,108);

Image1->Canvas->LineTo(120,155);

Image1->Canvas->Brush->Color=clWhite;

Image1->Canvas->Rectangle(125,155,115,180);

Image1->Canvas->MoveTo(120,180);

Image1->Canvas->LineTo(120,190);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(117,187,123,193);

Image1->Canvas->MoveTo(120,190);

Image1->Canvas->LineTo(108,190);

Image1->Canvas->MoveTo(105,183);//конденсатор

Image1->Canvas->LineTo(105,197);

Image1->Canvas->MoveTo(108,183);// конденсатор

Image1->Canvas->LineTo(108,197);

Image1->Canvas->MoveTo(105,190);

Image1->Canvas->LineTo(94,190);

Image1->Canvas->MoveTo(94,190);

Image1->Canvas->LineTo(94,207);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(91,204,97,210);

Image1->Canvas->MoveTo(94,210);

Image1->Canvas->LineTo(94,231);

Image1->Canvas->MoveTo(94,231);

Image1->Canvas->LineTo(83,231);

Image1->Canvas->Arc(72,213,88,221,80,221,80,213);// дуга

Image1->Canvas->Arc(72,221,88,229,80,229,80,221);// дуга

Image1->Canvas->Arc(72,229,88,237,80,237,80,229);// дуга

Image1->Canvas->MoveTo(80,213);

Image1->Canvas->LineTo(80,206);

Image1->Canvas->MoveTo(80,237);

Image1->Canvas->LineTo(80,242);

Image1->Canvas->MoveTo(80,206);

Image1->Canvas->LineTo(60,206);

Image1->Canvas->MoveTo(60,206);

Image1->Canvas->LineTo(60,221);

Image1->Canvas->MoveTo(53,221);//конденсатор

Image1->Canvas->LineTo(67,221);

Image1->Canvas->MoveTo(53,224);//конденсатор

Image1->Canvas->LineTo(67,224);

Image1->Canvas->MoveTo(60,224);

Image1->Canvas->LineTo(60,242);

Image1->Canvas->MoveTo(60,242);

Image1->Canvas->LineTo(81,242);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(78,239,84,245);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(66,203,72,209);

Image1->Canvas->MoveTo(69,206);

Image1->Canvas->LineTo(69,194);

Image1->Canvas->MoveTo(62,192);//конденсатор

Image1->Canvas->LineTo(76,192);

Image1->Canvas->MoveTo(62,195);//конденсатор

Image1->Canvas->LineTo(76,195);

Image1->Canvas->MoveTo(69,192);

Image1->Canvas->LineTo(69,170);

Image1->Canvas->MoveTo(69,180);

Image1->Canvas->LineTo(74,170);

Image1->Canvas->MoveTo(69,180);

Image1->Canvas->LineTo(64,170);

Image1->Canvas->MoveTo(81,239);

Image1->Canvas->LineTo(81,250);

Image1->Canvas->MoveTo(76,250);

Image1->Canvas->LineTo(87,250);

Image1->Canvas->MoveTo(94,207);

Image1->Canvas->LineTo(105,207);

Image1->Canvas->MoveTo(105,200);//конденсатор

Image1->Canvas->LineTo(105,214);

Image1->Canvas->MoveTo(108,200);// конденсатор

Image1->Canvas->LineTo(108,214);

Image1->Canvas->MoveTo(108,207);

Image1->Canvas->LineTo(120,207);

Image1->Canvas->MoveTo(120,207);

Image1->Canvas->LineTo(120,187);

Image1->Canvas->MoveTo(123,190);

Image1->Canvas->LineTo(128,190);

Image1->Canvas->Pen->Width=2; //линия в толщину 2 пикселя

Image1->Canvas->MoveTo(128,180);

Image1->Canvas->LineTo(128,200);

Image1->Canvas->Pen->Width=1;

Image1->Canvas->MoveTo(128,188);

Image1->Canvas->LineTo(140,180);

Image1->Canvas->MoveTo(128,192);

Image1->Canvas->LineTo(140,200);

TPoint p2[3];

p2[0].x=140;p2[0].y=200;

p2[1].x=140;p2[1].y=197;

p2[2].x=137;p2[2].y=200;

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Polygon(p2,2);

Image1->Canvas->MoveTo(140,180);

Image1->Canvas->LineTo(140,168);

Image1->Canvas->MoveTo(140,207);

Image1->Canvas->LineTo(170,207);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(167,204,173,210);

Image1->Canvas->MoveTo(133,125);//конденсатор

Image1->Canvas->LineTo(147,125);

Image1->Canvas->MoveTo(133,128);//конденсатор

Image1->Canvas->LineTo(147,128);

Image1->Canvas->MoveTo(140,128);

Image1->Canvas->LineTo(140,146);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(137,143,143,149);

Image1->Canvas->MoveTo(143,146);

Image1->Canvas->LineTo(170,146);

Image1->Canvas->MoveTo(140,149);

Image1->Canvas->LineTo(140,170);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(137,162,143,168);

Image1->Canvas->MoveTo(140,165);

Image1->Canvas->LineTo(170,165);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(167,162,173,168);

Image1->Canvas->MoveTo(173,165);

Image1->Canvas->LineTo(191,165);

Image1->Canvas->MoveTo(191,158);//конденсатор

Image1->Canvas->LineTo(191,172);

Image1->Canvas->MoveTo(194,158);//конденсатор

Image1->Canvas->LineTo(194,172);

Image1->Canvas->MoveTo(194,165);

Image1->Canvas->LineTo(212,165);

Image1->Canvas->MoveTo(212,165);

Image1->Canvas->LineTo(212,175);

Image1->Canvas->Arc(204,175,220,183,212,183,212,175);// дуга

Image1->Canvas->Arc(204,183,220,191,212,191,212,183);// дуга

Image1->Canvas->Arc(204,191,220,199,212,199,212,191);// дуга

Image1->Canvas->MoveTo(212,199);

Image1->Canvas->LineTo(212,207);

Image1->Canvas->MoveTo(212,207);

Image1->Canvas->LineTo(170,207);

Image1->Canvas->MoveTo(170,168);

Image1->Canvas->LineTo(170,183);

Image1->Canvas->Brush->Color=clBlack;

Image1->Canvas->Ellipse(138,204,144,210);

Image1->Canvas->MoveTo(141,207);

Image1->Canvas->LineTo(141,213);

Image1->Canvas->Brush->Color=clWhite;

Image1->Canvas->Rectangle(146,213,136,238);//отображает прямоугольник

Image1->Canvas->MoveTo(141,238);

Image1->Canvas->LineTo(141,243);

Image1->Canvas->MoveTo(141,242);

Image1->Canvas->LineTo(80,242);

Image1->Canvas->MoveTo(140,207);

Image1->Canvas->LineTo(140,200);

Image1->Canvas->MoveTo(163,183);//конденсатор

Image1->Canvas->LineTo(177,183);

Image1->Canvas->MoveTo(163,186);//конденсатор

Image1->Canvas->LineTo(177,186);

Image1->Canvas->MoveTo(170,186);

Image1->Canvas->LineTo(170,210);

Image1->Canvas->TextOut(135,25,"+4,5B");

Image1->Canvas->TextOut(120,60,"2.7K");

Image1->Canvas->TextOut(174,95,"35мГц");

Image1->Canvas->TextOut(225,85,"1.8K");

Image1->Canvas->TextOut(255,85,"10мк");

Image1->Canvas->TextOut(300,98,"к УЗЧ");

Image1->Canvas->TextOut(225,120,"6,8н");

Image1->Canvas->TextOut(240,165,"ВРЛ-100");

Image1->Canvas->TextOut(205,210,"70мГц");

Image1->Canvas->TextOut(159,210,"КТ315");

Image1->Canvas->TextOut(148,223,"100");

Image1->Canvas->TextOut(100,215,"6.8н");

Image1->Canvas->TextOut(30,199,"5..20");

Image1->Canvas->TextOut(50,180,"10");

Image1->Canvas->TextOut(50,155,"70мГц");

Image1->Canvas->TextOut(75,175,"10мк");

Image1->Canvas->TextOut(84,160,"100К*");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

Результат данной работы

Список литературы

1. Швайко И.Г., Буката Л.Н., Шаповаленко В.А. Технологии программирования. Модуль №1. Часть 2. Графика в C++ Builder. Методические указания к лабораторным работам и выполнению комплексного задания./ Одесса 2012

2. О.Г. Трофименко. Основи программування. Теорія та практика./Одесса Фенікс 2010

Размещено на Allbest.ru


Подобные документы

  • Интегрированная среда программирования C++ Builder 6. Методы вычерчивания графических примитивов. Основные свойства инструментов рисования. Разработка рисунка паутины с центром в точке с произвольным числом лучей. Алгоритм программы в виде блок-схемы.

    курсовая работа [842,5 K], добавлен 13.10.2017

  • Законы электрических цепей, порядок и методы их расчета. Разработка программы на языке программирования Borland C++ Builder 5.0 для анализа разветвленных электрических цепей с использованием матричного метода. Алгоритм решения задачи и описание его работы

    курсовая работа [211,5 K], добавлен 08.10.2012

  • Разработка программы с целью создания изображений графических примитивов на поверхности формы. Передача координат и плоскости рисования в функцию алгоритма разложения прямой линии. Расчет параметров для построения круга, особенности прорисовки эллипса.

    контрольная работа [220,7 K], добавлен 27.04.2012

  • Изучение организации диалоговой программы и закрепления основных элементов программирования на языке Паскаль и Си (Delphi, C++ Builder). Описание представления информации в программах на языках высокого уровня. Сравнительная характеристика Delphi и C++.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Работа в Borland C++ Builder. Среда разработки и компоненты C++ Builder. Свойства компонентов. Менеджер проектов. Создание приложений в C++ Builder. Выбор компонентов для групповых операций. Работа с базами данных в Borland C++ Builder.

    курсовая работа [35,8 K], добавлен 11.06.2007

  • Создание консольных приложений с использованием графического интерфейса пользователя. Содержание палитры компонентов программы С++ Builder. Использование возможностей объектно-ориентированного программирования, особенности редактора кода и форм в С++.

    лекция [27,0 K], добавлен 22.12.2010

  • Реализация программного кода "Organizer 1.0". Разработка приложений баз данных с помощью Borland C++ Builder 6. Компоненты системы программирования для работы по технологии InterBase. Программный код и интерфейс "Organizer 1.0", структура приложения.

    курсовая работа [466,9 K], добавлен 28.07.2009

  • Разработка приложения "Ведомость начисления заработной платы" в среде программирования C++Builder. Алгоритм и сценарий работы программы. Проектирование интерфейса пользователя. Написание программных модулей и результаты тестирования данной программы.

    курсовая работа [597,4 K], добавлен 31.01.2016

  • C++ Builder - SDI-приложение, главное окно которого содержит настраиваемую инструментальную панель и палитру компонентов. Свойства атрибутов компонента, определяющие его внешний вид и поведение. События, методы и VCL компоненты в среде C++ Builder.

    курсовая работа [225,9 K], добавлен 12.02.2009

  • Разработка прикладной программы для операций создания и уничтожения объектов в системе визуального объектно-ориентированного программирования C++Builder. Алгоритм работы программы, набор функций и операторов, компонент и модулей, кнопки событий.

    дипломная работа [672,5 K], добавлен 16.08.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.