Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача на классы, Описание графических объектов 
:(
    Опции темы
makmar
Дата 28.10.2008, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.1.2008

Репутация: нет
Всего: нет



На С++:
Построить систему классов для описания плоских геометрических фигур: круга, квадрата, прямоугольника.
Предусмотреть методы для создания объектов, премещения на плоскости, изменения размеров и вращения на заданный угол...


Надеюсь на помощь....
Заранее большое спасибо...
PM MAIL   Вверх
Lazin
Дата 28.10.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Код

class TransformMatrix;///<матрица, размером 3х3
class Vertex;///< вершина, вектор из 3х элементов

....
class Shape
{
public:
virtual void transform(const TransformMatrix& m) = 0;
};

class Line : public Shape
{
    Vertex begin, end;
public:
    Line(const Vertex& b, const Vertex& e): begin(b), end(e) {}
    
    void transform(const TransforMatrix& m)
    {
        begin = begin*m;//умножением вектора с координатами на матрицу, получаем любое преобразование координат
        end = end*m;
    }
};




Это сообщение отредактировал(а) Lazin - 28.10.2008, 11:52
PM MAIL Skype GTalk   Вверх
Dmi3ev
Дата 28.10.2008, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



вот окружность, например (взял кусочек, поэтому не смотри, что так много всего подключено):
Код

#ifndef MYCIRCLE_H
#define MYCIRCLE_H
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <dos.h>

class MyCircle
{
public:
MyCircle(int a, int b, int k){x=a; y=b; r=k;};
void Draw()
 {
  int gd,gm;
  gd= DETECT;
  initgraph(&gd, &gm, "..\\BGI");
  setcolor(getmaxcolor());
  circle(x, y, r);
 };
~MyCircle(){};
private:
double x, y, r;
};
#endif

для проверки можно написать программу:
Код

MyCircle myc(50,50,20);
myc.Draw();
sleep(1000);

а дальше можно и самому подумать немного.


--------------------

PM MAIL   Вверх
Dmi3ev
Дата 28.10.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Код

#ifndef MYCIRCLE_H
#define MYCIRCLE_H
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <dos.h>

class MyCircle
{
public:
MyCircle(int a, int b, int k){x=a; y=b; r=k;};
void Draw()
 {
  int gd,gm;
  gd= DETECT;
  initgraph(&gd, &gm, "..\\BGI");
  setcolor(getmaxcolor());
  circle(x, y, r);
 };
void GoTo(int a, int b)
{
 x=a; y=b;
 clrscr();
 circle(x, y, r);
};
~MyCircle(){};
private:
double x, y, r;
};
#endif

тут добавлен метод перемещения GoTo(x,y)


--------------------

PM MAIL   Вверх
makmar
Дата 3.11.2008, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.1.2008

Репутация: нет
Всего: нет



Всем спасибо, тоько я хотел еще пряоугольник...=)))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0758 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.