Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Natasall
2 / 2 / 1
Регистрация: 05.03.2011
Сообщений: 73
#1

анимация в С++

03.10.2011, 22:14. Просмотров 2084. Ответов 7
Метки нет (Все метки)

как заставить шарик вращаться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2011, 22:14
Ответы с готовыми решениями:

Анимация.
Я сделала анимацию барашка, он движется ,но, когда он двигается дальше,...

Анимация в С++
Уважаемые, программисты! кто может сделать анимацию в программе С++, рисунок...

Анимация
Ребята помогите написать анимацию(на ваш выбор). Анимация должна быть не очень...

Анимация
Как мне нарисовать ромб, так чтобы он менял свою форму, относительно своих...

Анимация
Всем привет. Меня интересует такой вопрос. Есть файл *.FBX насколько сложно...

7
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
03.10.2011, 22:16 #2
в цикле с задержкой изменять координаты по заданной функции
0
Natasall
2 / 2 / 1
Регистрация: 05.03.2011
Сообщений: 73
03.10.2011, 22:17  [ТС] #3
а как через синус и косинус?
0
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
03.10.2011, 22:32 #4
Natasall, покажите что у вас есть

Цитата Сообщение от Natasall Посмотреть сообщение
а как через синус и косинус?
проходом цикла от 0 до 2-х Пи
0
Natasall
2 / 2 / 1
Регистрация: 05.03.2011
Сообщений: 73
03.10.2011, 22:46  [ТС] #5
Цитата Сообщение от Jupiter Посмотреть сообщение
[b]


проходом цикла от 0 до 2-х Пи
напиши пожалуйста примерно как писать? я понимаю что через ПИ,а дальше незнаю
0
xAtom
918 / 743 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
03.10.2011, 22:58 #6
Цитата Сообщение от Natasall Посмотреть сообщение
напиши пожалуйста примерно как писать? я понимаю что через ПИ,а дальше незнаю
Natasall, вот пример накидал "издевательство" над калькулятором будем вращать его по часовой стрелке.
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
#include <windows.h>
#include <math.h>
#pragma warning(disable:4244)
 
int main(){
   WinExec("calc.exe", SW_SHOW);
   POINT pos, pt;
   RECT  rc;
   HWND  wnd = GetForegroundWindow();
   GetWindowRect(wnd, &rc);
   HRGN  rgn = CreateEllipticRgn(20, 20, rc.right-rc.left-20, rc.bottom-rc.top-20);
   SetWindowRgn(wnd, rgn, TRUE);
   DeleteObject(rgn);
    
   double pi = atan(1.0) * 4;
   int radx = GetSystemMetrics(SM_CXSCREEN) / 100 * 30;//радиус в 30%
   int rady = GetSystemMetrics(SM_CYSCREEN) / 100 * 30;
   int angle  = 0;
   pos.x = GetSystemMetrics(SM_CXSCREEN)/2-(rc.right-rc.left)/2;
   pos.y = GetSystemMetrics(SM_CYSCREEN)/2-(rc.bottom-rc.top)/2;
 
   while(++angle < 360*2) {
         pt.x = pos.x + radx * cos(angle*2*pi/180);
         pt.y = pos.y + rady * sin(angle*2*pi/180);
         SetWindowPos(wnd, HWND_TOPMOST, pt.x, pt.y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
         Sleep(14u);
   };
   PostMessage(wnd, WM_QUIT, 0, 0);
   return 0;
}
0
Natasall
2 / 2 / 1
Регистрация: 05.03.2011
Сообщений: 73
03.10.2011, 23:14  [ТС] #7
while(++angle < 360*2) {
pt.x = pos.x + radx * cos(angle*2*pi/180);
pt.y = pos.y + rady * sin(angle*2*pi/180);
SetWindowPos(wnd, HWND_TOPMOST, pt.x, pt.y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
Sleep(14u);

Как я понимаю это можно и к кругу применить?

Добавлено через 3 минуты
Цитата Сообщение от xAtom Посмотреть сообщение
Natasall, вот пример накидал "издевательство" над калькулятором будем вращать его по часовой стрелке.
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
#include <windows.h>
#include <math.h>
#pragma warning(disable:4244)
 
int main(){
   WinExec("calc.exe", SW_SHOW);
   POINT pos, pt;
   RECT  rc;
   HWND  wnd = GetForegroundWindow();
   GetWindowRect(wnd, &rc);
   HRGN  rgn = CreateEllipticRgn(20, 20, rc.right-rc.left-20, rc.bottom-rc.top-20);
   SetWindowRgn(wnd, rgn, TRUE);
   DeleteObject(rgn);
    
   double pi = atan(1.0) * 4;
   int radx = GetSystemMetrics(SM_CXSCREEN) / 100 * 30;//радиус в 30%
   int rady = GetSystemMetrics(SM_CYSCREEN) / 100 * 30;
   int angle  = 0;
   pos.x = GetSystemMetrics(SM_CXSCREEN)/2-(rc.right-rc.left)/2;
   pos.y = GetSystemMetrics(SM_CYSCREEN)/2-(rc.bottom-rc.top)/2;
 
   while(++angle < 360*2) {
         pt.x = pos.x + radx * cos(angle*2*pi/180);
         pt.y = pos.y + rady * sin(angle*2*pi/180);
         SetWindowPos(wnd, HWND_TOPMOST, pt.x, pt.y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
         Sleep(14u);
   };
   PostMessage(wnd, WM_QUIT, 0, 0);
   return 0;
}
у меня показывает ошибку в 9,12 и 26 строчке
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
03.10.2011, 23:54 #8
xAtom, у меня открывается калькулятор, а рядом с ним окошко с чёрным кругом, которое вращается, разве это и было задумано?
Я просто из любопытства откомпилировал Ваш код.
0
03.10.2011, 23:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2011, 23:54

Управляемая анимация в C++
Нарисовать схему электрической цепи, чтобы ключи при нажатии на соответствующие...

Анимация в GDI
Подскажите, пожалуйста, как анимировать фигуру в GDI, чтобы она при нажатии на...

Анимация в игре
Всем привет! Вот делаем с друзьями 2D платформер. Я использую SDL...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru