Форум программистов, компьютерный форум CyberForum.ru

Построить квадрат, который вращается вокруг своего центра на угол a - C++

Восстановить пароль Регистрация
 
Not Afraid
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 68
21.01.2014, 16:34     Построить квадрат, который вращается вокруг своего центра на угол a #1
помогите понять условие задачи а то я не до конца ее понимаю вот задание:
Построить квадрат, который вращается вокруг своего центра на угол a, при этом вершины нового квадрата, лежащих на сторонах предыдущего квадрата. Изобразить систему таких 4 × 4 квадратов, составляющих новый квадрат. Повороты в соседних квадратах должны иметь различные направления.
Как вершины нового квадрата должны лежать на сторонах предущего?
И как ето система 4 х 4 квадратов составляющий новый?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 16:34     Построить квадрат, который вращается вокруг своего центра на угол a
Посмотрите здесь:

C++ Какую площадь и периметр будет квадрат, описанный вокруг круга заданной площади
C++ Какую площадь и периметр будет квадрат, описанный вокруг круга заданной площади S
Осуществить "вращение" квадрата вокруг его центра C++
C++ Преобразовать квадратную матрицу, осуществив поворот элементов вокруг центра
C++ Вращение окружностей вокруг определенного центра
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
21.01.2014, 16:49     Построить квадрат, который вращается вокруг своего центра на угол a #2
Чушь какая-то, а не формулировка.
Not Afraid
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 68
21.01.2014, 16:51  [ТС]     Построить квадрат, который вращается вокруг своего центра на угол a #3
задание с книжки
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
21.01.2014, 16:59     Построить квадрат, который вращается вокруг своего центра на угол a #4
Цитата Сообщение от Not Afraid Посмотреть сообщение
Построить квадрат, который вращается вокруг своего центра на угол a, при этом вершины нового квадрата, лежащих на сторонах предыдущего квадрата.
Выбросьте книжку. Плюньте в лицо тому,кто вас ею снабдил.
Еще раз попробуйте перепечатать задание. Внимательно.
Not Afraid
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 68
21.01.2014, 17:07  [ТС]     Построить квадрат, который вращается вокруг своего центра на угол a #5
все правильно только "лежащих" надо заменить на лежат, извиняюсь описалса.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
22.01.2014, 09:03     Построить квадрат, который вращается вокруг своего центра на угол a #6
Not Afraid, тогда и запятой вы описались. Короче вы что-то темните.

Единственное, что я придумал это вот такой вариант:
Построить квадрат, который вращается вокруг своего центра на угол a

Внутренний квадрат поворачивается вокруг общего центра, его вершины лежат на ребрах внешнего. Но при этом он будет уменьшаться в размерах. Вроде бы про размеры ничего не сказано, значит нормально.
Далее. Если поставить шестнадцать таких внешних квадратов рядом друг с другом, в форме квадрата побольше (как раз будет 4 х 4), и в каждом разместить по такому вот повернутому квадрату, то получится то, что от вас требуют.
Not Afraid
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 68
22.01.2014, 23:32  [ТС]     Построить квадрат, который вращается вокруг своего центра на угол a #7
SatanaXIII, спасибо за помощь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 02:40     Построить квадрат, который вращается вокруг своего центра на угол a
Еще ссылки по теме:

C++ Имитация вращения дефиса вокруг центра симметрии
C++ Изобразить на форме отрезок, который вращается вокруг своей концевой точки
Поворот треугольника (вокруг центра) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
gunslinger
случайный прохожий
 Аватар для gunslinger
1097 / 715 / 184
Регистрация: 20.07.2013
Сообщений: 1,969
24.01.2014, 02:40     Построить квадрат, который вращается вокруг своего центра на угол a #8
Builder:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
UINT x = 50, y = 50, dif = 150;
// ClientHeight = ClientWidth = 700;
 
float Tan (float a)  // тангенс
{
  return Sin(a)/Cos(a);
}
//---------------------------------------------------------------------------
float rad (int grad)  // градусы в радианы
{
  float PI = 3.14159;
  return PI/180*grad;
}
//---------------------------------------------------------------------------
// tg a = dif x / (side - dif x)
// tg a * (side - dif x) = dif x
// tg a * side = dif x * (1 + tg a)
// dif x = tg a * side / (1 + tg a)
//---------------------------------------------------------------------------
void rotate_square (int x1, int y1, int x2, int y2, int angle)  // вращение квадрата; угол в градусах
{
  int temp = Tan(rad(angle))*dif/(1+Tan(rad(angle)));
  Form1->Canvas->MoveTo(x1+temp, y1);
  Form1->Canvas->LineTo(x1+dif, y1+temp);
  Form1->Canvas->LineTo(x1+dif-temp, y1+dif);
  Form1->Canvas->LineTo(x1, y1+dif-temp);
  Form1->Canvas->LineTo(x1+temp, y1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//  DoubleBuffered = 1;
//  Timer1->Interval = 100;
  Canvas->Brush->Style = bsClear;  // "пустой" внешний квадрат
  const k=4;
  int i, j, n;  // n - угол поворота в градусах
  bool m;  // перменная для "стирания" / отрисовки внутр. квадрата
 
  for (m = 0; m <= 1; m++)
  {
    if (m==1)
    {
      Tag++;
      if (Tag==90)
        Tag = 0;
    }
    Canvas->Pen->Color = (m==0) ? Color : clBlack;  // стираем / рисуем внутр. квадрат
// для статичной картинки достаточно указать фиксированное значение угла n
// Tag (да и таймер) тогда не нужен, как и "стирание"
    for (i = 0; i < k; i++)
      for (j = 0; j < k; j++)
      {
        n = (i%2==0 && j%2==0) || (i%2==1 && j%2==1) ? Tag : 90-Tag;  // Tag-90 : -Tag;  ->  :-)
        rotate_square(x+i*dif, y+j*dif, x+(i+1)*dif, y+(j+1)*dif, n);  // внутр. квадрат
        Canvas->Rectangle(x+i*dif, y+j*dif, x+(i+1)*dif+1, y+(j+1)*dif+1);  // внешний квадрат
      }
  }
}
Миниатюры
Построить квадрат, который вращается вокруг своего центра на угол a  
Вложения
Тип файла: zip squares.zip (266.5 Кб, 11 просмотров)
Yandex
Объявления
24.01.2014, 02:40     Построить квадрат, который вращается вокруг своего центра на угол a
Ответ Создать тему
Опции темы

Текущее время: 00:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru