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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Natasall
2 / 2 / 0
Регистрация: 05.03.2011
Сообщений: 73
03.10.2011, 22:14     анимация в С++ #1
как заставить шарик вращаться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2011, 22:14     анимация в С++
Посмотрите здесь:

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

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


проходом цикла от 0 до 2-х Пи
напиши пожалуйста примерно как писать? я понимаю что через ПИ,а дальше незнаю
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 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;
}
Natasall
2 / 2 / 0
Регистрация: 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 строчке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2011, 23:54     анимация в С++
Еще ссылки по теме:

Анимация в игре C++
Анимация C++
C++ Анимация в консоли

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

Или воспользуйтесь поиском по форуму:
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
03.10.2011, 23:54     анимация в С++ #8
xAtom, у меня открывается калькулятор, а рядом с ним окошко с чёрным кругом, которое вращается, разве это и было задумано?
Я просто из любопытства откомпилировал Ваш код.
Yandex
Объявления
03.10.2011, 23:54     анимация в С++
Ответ Создать тему
Опции темы

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