Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2012, 03:16   #1
romanie
 
Регистрация: 10.05.2012
Сообщений: 5
По умолчанию анимация, реализовать замену цвето

есть код, нарисована звезда, нужно чтобы при нажатии клавиши вправо звезда повернулась на 90 градусов, влево обратно, и так бесконечно пока не нажмешь клавишу esc.
в общем нужно реализовать замену цветов в треугольниках или смену координат.
помогите, очень надо.
Код:
#include <graphics.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <conio.h>

int main(void)
 {
 int gdriver = DETECT, gmode, errorcode;
 int i, mx, my; 

 initgraph(&gdriver, &gmode, "");

 mx = getmaxx(); 
 my = getmaxy();
  printf("%d %d",mx/2,my/2);

int poly[6]={mx/2-50,my/2-50,
mx/2+50,my/2-50,
mx/2,my/2-200};

int poly1[6]={mx/2+50,my/2-50,
mx/2+50,my/2+50,
mx/2+200,my/2};

int poly2[6]={mx/2+50,my/2+50,
mx/2-50,my/2+50,
mx/2,my/2+200};

int poly3[6]={mx/2-50,my/2+50,
mx/2-50,my/2-50,
mx/2-200,my/2};
 
 setfillstyle(1,4);
 fillpoly(3,poly);

 setfillstyle(1,1);
 fillpoly(3,poly1);
 
 setfillstyle(1,14);
 fillpoly(3,poly2);

 setfillstyle(1,2);
 fillpoly(3,poly3); 
 
 getch();
 
 closegraph();
 return 0;
 }
romanie вне форума Ответить с цитированием
Старый 17.05.2012, 02:52   #2
romanie
 
Регистрация: 10.05.2012
Сообщений: 5
По умолчанию

up!
help please
romanie вне форума Ответить с цитированием
Старый 17.05.2012, 04:07   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Взять 2 радиуса : R-кончики звезды и r-соединения между зубьями.Чтобы нарисовать круг, понадобится формула x=x0+r*cos(alpha*pi/180) y=y0+r*sin(alpha*pi/180), где x0,y0-коорднаты центра, alpha принимает значения от 0 до 360.Теперь если взять 0,90,180 и 270 ° для кончиков и 45,135,225 и 315 ° для соединений, то получим точки для 4-уголной звезды. То есть если подставить в приведённую формулу поочерёдно (R,0), (r,45), (R,90) и т.д. получим звезду. Ну а далее, чтобы её крутить, просто к alpha прибавляйте 90, умноженное на счетчик нажатий по клавишам. Нажали вправо, прибавили к счётчику 1, нажали влево, уменьшили на единицу.
Есть и другой способ, это матрица поворота. Только звезду надо строить так, стобы центр звезды проходил через начало координат и каждая кочка тогда будет выглядеть так:
x`=x*cos(alhpa*pi/180)-y*sin(alhpa*pi/180)+x0;
y`=x*sin(alhpa*pi/180)+y*cos(alhpa*pi/180)+y0;

Возможно я тут где-то несвязно написал - голова болит м спать хочу. За этим и откланяюмь.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на замену glebcherednik Помощь студентам 6 10.12.2011 23:31
Задача на замену символов Walter Bishop Паскаль, Turbo Pascal, PascalABC.NET 0 18.10.2011 18:16
Организовать замену в файле. Leshii Паскаль, Turbo Pascal, PascalABC.NET 5 14.09.2011 19:43
Как реализовать замену клеток s3m Microsoft Office Access 9 18.11.2010 13:59
Условие на замену pchakoff Microsoft Office Access 6 11.12.2009 23:01