![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.11.2011
Сообщений: 34
|
![]()
Написать приложение, в котором реализовано следующее
1. Определен класс, описывающий сегмент круга, который может отображаться на холсте одного из компонентов формы приложения, и имеет возможность изменять положение, геометрические характеристики и цвет заливки. 2. В приложении создаются три экземпляра описанного выше класса. 3. Пользователь имеет возможность изменять характеристики выбранного (например, при помощи ввода индекса объекта) экземпляра класса. всё есть кроме 1. не могу никак написать сегмент круга. подскажите что дописать в этот код. unit1.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "File2.h" #include <math.h> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TRotatedTriangle *tr[5] ; int pos=0; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { for(int i=0;i<5;i++) tr[i]=new TRotatedTriangle(PaintBox1,PaintBox 1->Width/2+i*2,PaintBox1->Height/2,200,100,0); } //--------------------------------------------------------------------------- void __fastcall TForm1::PaintBox1Paint(TObject *Sender) { for(int i=0;i<5;i++) tr[i]->draw(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { pos=StrToInt(Edit3->Text); tr[pos]->changeSize(StrToInt(Edit1->Text),StrToInt(Edit2->Text)); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { pos=StrToInt(Edit3->Text); tr[pos]->rotate(M_PI/10); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { pos=StrToInt(Edit3->Text); tr[pos]->rotate(-M_PI/10); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { delete[] tr; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { tr[pos]->setColor(pos,StrToInt(Edit4->Text)); } //--------------------------------------------------------------------------- unit2.cpp //--------------------------------------------------------------------------- #pragma hdrstop #include "File2.h" #include <math.h> //--------------------------------------------------------------------------- #pragma package(smart_init) const xm_min=0, xm_max=1, ym_min=0, ym_max=1; double a,b,c,d; int _x(double x) { return a*x + b; } int _y(double y) { return c*y + d; } void TRotatedTriangle::calculateVertices () { } void TRotatedTriangle::changeSize(int width,int height) { fWidth=width; fHeight=height; calculateVertices(); paintBox->Invalidate(); } TRotatedTriangle::TRotatedTriangle( TPaintBox *paintB,int centerX,int centerY,int width,int height,double alpha) { paintBox=paintB; fCenterX=centerX; fCenterY=centerY; fWidth=width; fHeight=height; fAlpha=alpha; calculateVertices(); paintBox->Invalidate(); } void TRotatedTriangle: ![]() { ????? } void TRotatedTriangle::rotate(double dAlpha) { fAlpha+=dAlpha; calculateVertices(); paintBox->Invalidate(); } void TRotatedTriangle::setColor(int pos,int color) { paintBox->Canvas->Brush->Color=color; c=color; paintBox->Canvas->Polygon(fVertices,n-1); } int TRotatedTriangle::getColor() { return c; } unit2.h #ifndef TRotatedTriangleH #define TRotatedTriangleH #include <ExtCtrls.hpp> const n=5; class TRotatedTriangle { TPaintBox *paintBox; int fCenterX,fCenterY,fWidth,fHeight; double fAlpha; TPoint fVertices[n]; void calculateVertices(); int c; public: TRotatedTriangle(TPaintBox *box,int centerX,int centerY,int width,int height,double alpha); void rotate(double); void draw(); void setColor(int ,int); int getColor(); void changeSize(int width,int height); }; #endif |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Класс , описывающий исключения. | vedro-compota | C# (си шарп) | 17 | 19.04.2011 17:39 |
Определить Класс описывающий матрицу. С++ | varlonec | Помощь студентам | 1 | 26.01.2010 18:37 |
Определить класс описывающий додекаэдр. С++ | varlonec | Помощь студентам | 0 | 26.01.2010 18:23 |
определить класс описывающий вектор.С++ | varlonec | Помощь студентам | 0 | 26.01.2010 17:47 |
определить класс описывающий матрицу. С++ | varlonec | Помощь студентам | 0 | 26.01.2010 17:34 |