Построение электрических схем в С++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.2016C++ Builder - SDI-приложение, главное окно которого содержит настраиваемую инструментальную панель и палитру компонентов. Свойства атрибутов компонента, определяющие его внешний вид и поведение. События, методы и VCL компоненты в среде C++ Builder.
курсовая работа [225,9 K], добавлен 12.02.2009Разработка прикладной программы для операций создания и уничтожения объектов в системе визуального объектно-ориентированного программирования C++Builder. Алгоритм работы программы, набор функций и операторов, компонент и модулей, кнопки событий.
дипломная работа [672,5 K], добавлен 16.08.2012