Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 14:12   #1
elf01
Пользователь
 
Регистрация: 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:raw()
{
?????
}
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
elf01 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс , описывающий исключения. 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