ТЕХНИЧЕСКИЕ НАУКИ
СОЗДАНИЕ ПРОСТОЙ МУЛЬТИПЛИКАЦИИ
Ананьева Марина Алексеевна
старший преподаватель Московский технологический университет
МИРЭА г. Москва
INSTANTIATE THE SIMPLE ANIMATION
Ananieva Marina Alekseevna
older teacher of Moskow technological university MIREA, MOSCOW
АННОТАЦИЯ
В данной статье рассматривается создание собственной мультипликации - условного изображения пчелы. Пример простой мультипликации приводится в [1].Простые анимации можно использовать при создании какой-нибудь обучающей программы, чтобы описывать какие-то схемы или условные изображения механизмов, чтобы показать в движении взаимодействие их отдельных составляющих.
ABSTRACT
In this article considers the instantiate eigen animation - of conditional image bee. The example of simple animation result in [1].The simple animation one can use by instantiate some teach program, in order to revive some schemes or conditional image of mechanism, in order to show in movement interaction them separate structures.
Ключевые слова: мультипликация, условное изображение . Keywords: animation, conditional.
//the program write on language C+ +Builder 6 #include <vcl.h> #pragma hdrstop
#define IC_B_C Image1 ->Canvas->Brush->Color #define IC_P_C Image1 ->Canvas->Pen->Color #define IC_F Image1->Canvas->FloodFill #define IC_E Image1 ->Canvas->Ellipse #define IC_R Image1->Canvas->Rectangle #define IC_P Image1->Canvas->Pixels #define cW clWhite #define cY clYellow #include "Acticle_16_1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
short x=0,y=0;//coordinates of base point short revers=1;//direction of movement short dx=3,dy=3;//scale short H=60;//step
//---------------------------------------------------------------------------
_fastcall TForm 1: :TForm 1(TComponent* Owner)
: TForm(Owner) { }
//-------------------------------------------------------------------
void_fastcall TForm1::Draw()
{/background
IC_B_C=(TColor)RGB(220,242,248); IC_R(0,0,Width,Height);
//bee
IC_P_C=(TColor)cY; IC_B_C=(TColor)cY;
IC_E(x+revers*10*dx,y+67*dy,x+revers*82*dy,y+113*dy);
//stripes to the left on the right
IC_P_C=(TColor)0;
IC_B_C=(TColor)0;
//1
Bezier(x+revers*12*dx,y+90*dy,x+revers*16*dx,y+78*dy, x+revers*13*dx,y+85*dy);
Bezier(x+revers*16*dx,y+78*dy,x+revers*10*dx,y+90*dy, x+revers*11*dx,y+85*dy);
Bezier(x+revers*10*dx,y+90*dy,x+revers*16*dx,y+102*dy, x+revers*11*dx,y+95*dy);
Bezier(x+revers*16*dx,y+102*dy,x+revers*12*dx,y+90*dy, x+revers*13*dx,y+95*dy);
IC_F(x+revers*11*dx,y+90*dy,IC_P[x+revers* 11*dx][y+90*dy], fsSurface);
//2
Bezier(x+revers*23*dx,y+90*dy,x+revers*28*dx,y+70*dy, x+revers*24*dx,y+80*dy);
Bezier(x+revers*28* dx,y+70*dy,x+revers*21*dx,y+74*dy, x+revers*24*dx,y+72*dy);
Bezier(x+revers*21* dx,y+74*dy,x+revers*18*dx,y+90*dy, x+revers*19*dx,y+80*dy);
Bezier(x+revers*18* dx,y+90*dy,x+revers*21*dx,y+106*dy, x+revers*19*dx,y+100*dy);
Bezier(x+revers*21* dx,y+106*dy,x+revers*28*dx,y+110*dy, x+revers*24*dx,y+108*dy);
Bezier(x+revers*28* dx,y+110*dy,x+revers*23*dx,y+90*dy, x+revers*24*dx,y+100*dy);
IC_F(x+revers*20*dx,y+90*dy,IC_P[x+revers*20*dx][y+90*dy], fsSurface);
//3
Bezier(x+revers*39*dx,y+90*dy,x+revers*46*dx,y+67*dy, x+revers*40*dx,y+80*dy);
Bezier(x+revers*46* dx,y+67*dy,x+revers*39*dx,y+6 8*dy, x+revers*43*dx,y+67*dy);
Bezier(x+revers*39* dx,y+68*dy,x+revers*33*dx,y+90*dy, x+revers*34*dx,y+80*dy);
Bezier(x+revers*33* dx,y+90*dy,x+revers*39*dx,y+112*dy, x+revers*34*dx,y+100*dy);
Bezier(x+revers*39*dx,y+112*dy,x+revers*46*dx,y+113*dy, x+revers*43*dx,y+112*dy);
Bezier(x+revers*46* dx,y+113*dy,x+revers*39*dx,y+90*dy, x+revers*40*dx,y+100*dy);
IC_F(x+revers*36*dx,y+90*dy,IC_P[x+revers*36*dx] [y+90*dy], fsSurface);
//4
Bezier(x+revers*57* dx,y+95*dy,x+revers*57*dx,y+85*dy, x+revers*56*dx,y+90*dy);
Bezier(x+revers*57* dx,y+85*dy,x+revers*62*dx,y+69*dy, x+revers*59*dx,y+78*dy);
Bezier(x+revers*62* dx,y+69*dy,x+revers*56*dx,y+6 8*dy, x+revers*59*dx,y+69*dy);
Bezier(x+revers*56* dx,y+68*dy,x+revers*50*dx,y+85*dy, x+revers*53*dx,y+77*dy);
Bezier(x+revers*50*dx,y+85*dy,x+revers*51*dx,y+95*dy, x+revers*49*dx,y+90*dy);
Bezier(x+revers*51*dx,y+95*dy,x+revers*56*dx,y+112*dy, x+revers*53*dx,y+103*dy);
Bezier(x+revers*56*dx,y+112*dy,x+revers*62*dx,y+110*dy, x+revers*59*dx,y+111*dy);
Bezier(x+revers*62* dx,y+110*dy,x+revers*57*dx,y+95*dy, x+revers*59*dx,y+103*dy);
IC_F(x+revers*52*dx,y+90*dy,IC_P[x+revers*52*dx] [y+90*dy], fsSurface);
//mouth
Bezier(x+revers*68*dx,y+99*dy,x+revers*73*dx,y+103*dy, x+revers*69*dx,y+101*dy);
Bezier(x+revers*67.8*dx,y+99*dy,x+revers*72.8 *dx,y+103*dy, x+revers*68.8* dx,y+101*dy); //eyes //right eye
IC_B_C=(TColor)cW;
IC_E(x+revers*76*dx,y+77*dy,x+revers*84*dx,y+85*dy); //pupil
IC_B_C=(TColor)0;
IC_E(x+revers*81*dx,y+80*dy,x+revers*82.5*dx,y+81.5*dy); //left eye
IC_B_C=(TColor)cW;
IC_E(x+revers*68*dx,y+81*dy,x+revers*78*dx,y+91 *dy); //pupil
IC_B_C=(TColor)0;
IC_E(x+revers*74*dx,y+84*dy,x+revers*76*dx,y+86 *dy);
//wings
IC_P_C=(TColor)RGB(78,78,78);
//right wing
Bezier(x+revers*66* dx,y+71*dy,x+revers*46*dx,y+5 8*dy, x+revers*55*dx,y+63*dy);
Bezier(x+revers*46* dx,y+58*dy,x+revers*30*dx,y+5 4*dy, x+revers*40*dx,y+57*dy);
Bezier(x+revers*30* dx,y+54*dy,x+revers*22*dx,y+70*dy, x+revers*20*dx,y+60*dy);
Bezier(x+revers*22*dx,y+70*dy,x+revers*40*dx,y+79*dy, x+revers*30*dx,y+75*dy);
Bezier(x+revers*40*dx,y+79*dy,x+revers*57*dx,y+83*dy, x+revers*46*dx,y+81*dy);
Bezier(x+revers*57* dx,y+83*dy,x+revers*66*dx,y+71*dy, x+revers*61*dx,y+77*dy); //left wing
Bezier(x+revers*57*dx,y+83*dy,x+revers*40*dx,y+86*dy, x+revers*50*dx,y+84*dy);
Bezier(x+revers*40*dx,y+86*dy,x+revers*23*dx,y+93*dy, x+revers*30*dx,y+89*dy);
Bezier(x+revers*23*dx,y+93*dy,x+revers*12*dx,y+110*dy, x+revers*15*dx,y+100*dy);
Bezier(x+revers*12*dx,y+110*dy,x+revers*20*dx,y+121*dy, x+revers*15*dx,y+119*dy);
Bezier(x+revers*20* dx,y+121*dy,x+revers*40*dx,y+117*dy,
x+revers*30*dx,y+121*dy);
Bezier(x+revers*40* dx,y+117*dy,x+revers*60*dx,y+98*dy, x+revers*50*dx,y+109*dy);
Bezier(x+revers*60*dx,y+98*dy,x+revers*57*dx,y+83*dy, x+revers*57*dx,y+90*dy);}
//--------------------------------------------------------------------------
void__fastcall TForm1::Bezier(short StartX, short StartY, short EndX,
short EndY, short CenterX, short CenterY)
{TPoint points[4];
points[0]=Point( StartX,StartY);
points[1]=Point(CenterX,CenterY);
points[2]=Point(EndX,EndY);
points[3]=Point(EndX,EndY);
Image1 ->Canvas->PolyBezier(points,3);}
//-------------------------------------------------------------------------
void_fastcall TForm1::BRunClick(TObject *Sender)
{Timer1 ->Enabled=! Timer 1 ->Enabled;}
//---------------------------------------------------------------------------
void_fastcall TForm1::Timer1Timer(TObject *Sender)
{Clear(); Draw();
if ((x+dx*H>=Image1->Picture->Width-dx*H) || (x+dx*H<=0))
revers=-revers;
x+=dx* revers+H*revers;
Clear(); Draw();}
//---------------------------------------------------------------------------
void_fastcall TForm1::FormCreate(TObject *Sender)
{Draw();}
//---------------------------------------------------------------------------
void_fastcall TForm1::Clear()
{
IC_B_C=(TColor)cW;
Image1 ->Canvas->FillRect(ClientRect);
}
//---------------------------------------------------------------------------
void_fastcall TForm1::BCloseClick(TObject *Sender)
{
Close(); }
//---------------------------------------------------------------------------
34
Нацнона№нан ассоцнацнa yneHbix (HAY) # 2 (29), 2017
Drawing l.The bee fly to the left on the right
Drawing 2.The bee fly to the right on the left
The list of literature:
1. Kultin N.B.
Self-teacher C++Builder .-SPB.: BXB- Peterburg, 2012y.-320 p.