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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму тех членов ряда,модуль которых больше или равен заданому е http://www.cyberforum.ru/cpp-beginners/thread1077480.html
даны числовой ряд и некоторое число е. найти сумму тех членов ряда,модуль которых больше или равен заданому е. общий член ряда имеет вид:a=2^n/(n-1)!
C++ Найти в массиве максимальный элемент и заменить все вышестоящие на минимальный из последней строки 1. В массиве все элементы, стоящие выше максимального элемента, заменить на минимальный элемент последней строки. 2.Обнулить элементы тех строк, в которых встречается более двух нулевых элементов. Заранее Благодарю. http://www.cyberforum.ru/cpp-beginners/thread1077478.html
C++ Найти сумму тех членов ряда, модуль которых больше ли равен заданному е
Даны числовой ряд и некоторое число е. Найти сумму тех членов ряда, модуль которых больше ли равен заданному е.общий член ряда имеет вид: {a}_{n}=\frac{{2}^{n}}{(n-1)!}
Подсобите собрать в одну программу, заодно проверить C++
1) в стpoкe пoслe каждой бyквы Ch вставить cтpoкy Str1 2) в cимвoльной стpoке зaкaнчивaющейся тoчкoй вывecти cлoвa из 3 бyкв 3)Дaны двe cимвoльныe cтpoки А и В. Cocтaвьтe пpoгpaммy, прoвеpяющую, мoжнo ли из бyкв, вхoдящих в А, составить В. бyквы мoжнo пeрecтaвлять и иcпoльзовaть 1 рaз. нужно объединить в прогу, которая будет запрашивать какую из этих 3 -х задачу решать (чтобы запрашивал...
C++ динамические переменные http://www.cyberforum.ru/cpp-beginners/thread1077457.html
1. Составьте программу, в которой 8-10 переменных разной длины, например, строки символов, размещаются в ДРП, причем размещение чередуется с освобождением памяти так, что возникает фрагментация. Переменные меньшей длины размещайте после освобождения памяти 1-2 переменных большей длины. Используя функции Ofs, Seg, получите карту распределения памяти на промежуточных и окончательных этапах. 2. С...
C++ Необходимо описать функцию, выводящую на печать слова в алфавитном порядке Помогите, пожалуйста, описать функцию Текст задания: описать функцию sort(A), которая принимает в виде параметра строку А, состоящую из 3х слов, в каждом из которых от 2 до 6 латинских букв и за каждым из которых следует пробел. Функция sort(A) выводит на печать эти слова в алфавитном порядке подробнее

Показать сообщение отдельно
gunslinger
случайный прохожий
 Аватар для gunslinger
1103 / 721 / 184
Регистрация: 20.07.2013
Сообщений: 1,983
24.01.2014, 02:40     Построить квадрат, который вращается вокруг своего центра на угол a
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 просмотров)
 
Текущее время: 11:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru