Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Система класів для опису плоских геометричних фігур

Реферат Система класів для опису плоских геометричних фігур





тових формул, так і з розробкою алгоритму власними силами. Придбані вміння безумовно будуть корисні мені, як студенту напрямки інформатики.


Список використаних джерел


Вікіпедія - # justify gt; Додаток А. Повний лістинг програми


# include lt; iostream gt;

# include lt; cmath gt;

# include lt; vector gt; namespace std; Shape//загальний клас фігур

{

public: Perimeter, Square, CenterX, CenterY, Angle;// загальні параметри для всіх фігур type;// тип фігури

//віртуальні функції:

virtual void Move (float X, float Y)=0; void Resize (float X, float Y)=0; void Rotate (float Kangle)=0; void FindSquare ()=0; void FindPerimeter ()=0;

}; Rectangle: public Shape//прямокутник

{: LTX, LTY, LDX, LDY, RDX, RDY, RTX, RTY;// координати кутів () {}; (float KLTX, float KLTY, float KRDX, float KRDY)//конструктор

{= 2;// задаємо тип фігури

LTX=KLTX;// копіюємо координати=KLTY;=KRDX;=KRDY;=LTX;=RDY;=RDX;=LTY;=(RDX-LDX) /2.0+LDX;// знаходимо координати центру

CenterY=(LTY-LDY) /2.0+LDY;

} Move (float X, float Y)//перемістити на X, Y

{

//просто зрушимо всі координати

LTX +=X;

LTY +=Y; +=X; +=Y; +=X; +=Y; +=X; +=Y; +=X; +=Y;

} Resize (float X, float Y)//змінити розмір

{XP=cos (Angle) * Y * 1.0;// знаходимо вектор-зрушення точки для шіріниYP=sin (Angle) * Y * 1.0; -=(XP/2.0);// і свдігаем

LDX -=(XP/2.0);

RTX +=(XP/2.0); +=(XP/2.0); +=(YP/2.0);=(YP/2.0); +=(YP/2.0);=(YP/2.0); XQ=sin (Angle) * X * 1.0;// знаходимо вектор-зрушення точки для довжини

float YQ=cos (Angle) * X * 1.0; +=(XQ/2.0);// і свдігаем

LDX -=(XQ/2.0);

RTX +=(XQ/2.0);

RDX -=(XQ/2.0);

LTY +=(YQ/2.0);

RTY +=(YQ/2.0);=(YQ/2.0);=(YQ/2.0);

} Rotate (float Kangle)//поворот

{angle=-Kangle * 3.14/180;// переклад з градусів в радіани

//запам'ятовуємо початкові значення, тому вони будуть змінюватися в ході обчислень, а для кожного наступного обчислення потрібні первісні дані

float KLTX=LTX; KLTY=LTY; KLDX=LDX; KLDY=LDY; KRTX=RTX; KRTY=RTY; KRDX=RDX; KRDY=RDY;

LTX=CenterX + (KLTX-CenterX) * cos (angle) - (KLTY-CenterY) * sin (angle);=CenterY + (KLTX-CenterX) * sin (angle) + (KLTY-CenterY ) * cos (angle); =CenterX + (KRTX-CenterX) * cos (angle) - (KRTY-CenterY) * sin (angle);=CenterY + (KRTX-CenterX) * sin (angle) + (KRTY-CenterY) * cos (angle); =CenterX + (KLDX-CenterX) * cos (angle) - (KLDY-CenterY) * sin (angle);=CenterY + (KLDX-CenterX) * sin (angle) + (KLDY-CenterY) * cos (angle); =CenterX + (KRDX-CenterX) * cos (angle) - (KRDY-CenterY) * sin (angle);=CenterY + (KRDX-CenterX) * sin (angle) + (KRDY-CenterY) * cos (angle); =angle;

} FindSquare ()//знаходимо площа

{=sqrt(pow((RTX-LTX),2)+pow((RTY-LTY),2))*sqrt(pow((LDX-LTX),2)+pow((LDY-LTY),2));

} FindPerimeter ()//і периметр

{=(sqrt(pow((RTX-LTX),2)+pow((RTY-LTY),2))+sqrt(pow((LDX-LTX),2)+pow((LDY-LTY),2)))*2;

}

}; Quadrate: public Rectangle//квадрат

{: side;// сторона (float KLTX, float KLTY, float Side)//конструктор

{

Rectangle ();//викликаємо конструктор супер-класу

type=3;// вказуємо тип

side=Side;// копіюємо параметри

LTX=KLTX;

LTY=KLTY;

RDX=KLTX + Side;// і обчислюємо бракуючі

RDY=KLTY-Side;=LTX;=RDY;=RDX;=LTY;=(RDX-LDX) /2.0+LDX;// обчислюємо центр=(LTY-LDY) /2.0+LDY;

} Resize (float X)

{XP=cos(Angle)*X*1.0;YP=sin(Angle)*X*1.0;=(XP/2.0);=(XP/2.0);+=(XP/2.0);+=(XP/2.0);+=(YP/2.0);=(YP/2.0);+=(YP/2.0);=(YP/2.0);XQ=sin(Angle)*X*1.0;YQ=cos(Angle)*X*1.0;+=(XQ/2.0);=(XQ/2.0);+=(XQ/2.0);=(XQ/2.0);+=(YQ/2.0);+=(YQ/2.0);=(YQ/2.0);=(YQ/2.0);+=X;


} Rotate (float Kangle)

{angle=-Kangle * 3.14/180; KLTX=LTX; KLTY=LTY; KLDX=LDX; KLDY=LDY; KRTX=RTX; KRTY=RTY; KRDX=RDX; KRDY=RDY;

LTX=CenterX + (KLTX-CenterX) * cos (angle) - (KLTY-CenterY) * sin (an...


Назад | сторінка 4 з 9 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Створення програми для обчислення площі геометричних фігур у середовищі Vis ...
  • Реферат на тему: Географічні координати
  • Реферат на тему: Декартові координати
  • Реферат на тему: Визначення обсягу і площі геометричних фігур. Системи лінійних нерівностей ...
  • Реферат на тему: Аналіз фігур мовлення та їх Функції текстоутворення в англійській мові