Тот овал, который мы создали в прошлом шаге, мы заставим двигаться. Для этого нужен объект трансформации. Этот объект нужно приложить к объекту изображения и получить новый объект изображения, который уже передать элементу управления. Выбирая функцию создания трансформации нужно понимать одну маленькую тонкость. Приставка Rate заставит объект двигаться непрерывно.
Функция трансформации – просто одна трансформация Функция транформацииRate – непрерывная трансформация
Вот что у нас получится. Только в реальной анимации все будет намного плавней.
HTML&JScript Создадим объект трансформации, применим к овалу, передадим элементу управления.
Объявим необходимые переменные:
Создадим объект трансформации, применим к овалу, передадим элементу управления:
Подключаем описание класса трансформации:
Объявим необходимые переменные:
Создадим объект трансформации, применим к овалу, передадим элементу управления.
Visual Basic
Visual C++
HTML&JScript
<SCRIPT language=JScript>
mDAStatics = DAControl.PixelLibrary;
myImg = mDAStatics.SolidColorImage(mDAStatics.Red);
myOval=mDAStatics.Oval(50,80).Fill(mDAStatics.DefaultLineStyle,myImg);
myrot = mDAStatics.Rotate2Rate(1.5);
myfinal = myOval.Transform(myrot);
DAControl.Image = myfinal;
DAControl.Start();
</SCRIPT>
Visual Basic
Dim myRot As DATransform2
Dim myFinal As DAImage
Dim mOValImage As DAImage
Dim mDAImage As DAImage
Dim mDAStatics As DAStatics
Private Sub Form_Load()
Set mDAStatics = DAViewerControl1.PixelLibrary
Set mDAImage = mDAStatics.SolidColorImage(mDAStatics.Red)
Set mOValImage = mDAStatics.Oval(50, 80).Fill(mDAStatics.DefaultLineStyle, mDAImage)
Set myRot = mDAStatics.Rotate2Rate(1.5)
Set myFinal = mOValImage.Transform(myRot)
DAViewerControl1.Image = myFinal
DAViewerControl1.Start
End Sub
Visual C++
.........
#include "dastatics.h"
#include "daimage.h"
#include "dacolor.h"
#include "dalinestyle.h"
#include "dapath2.h"
#include "datransform2.h"
..........
class CVCDlg : public CDialog
{
// Construction
public:
CVCDlg(CWnd* pParent = NULL); // standard constructor
CDAStatics mDAStatics;
CDAImage mCDAImage;
CDAImage mOvalImage;
CDAImage mFinalImage;
CDATransform2 mTransform;
CDAColor mCDAColor;
CDALineStyle mDALineStyle;
// Dialog Data
//{{AFX_DATA(CVCDlg)
..............
};
.......
// TODO: Add extra initialization here
mDAStatics=m_DirectControl.GetPixelLibrary();
mCDAColor = mDAStatics.GetRed();
mCDAImage=mDAStatics.SolidColorImage(mCDAColor);
mDALineStyle = mDAStatics.GetDefaultLineStyle();
mOvalImage=mDAStatics.Oval(50,80).Fill( mDALineStyle ,mCDAImage);
mTransform=mDAStatics.Rotate2Rate(1.5);
mFinalImage=mOvalImage.Transform(mTransform);
m_DirectControl.SetImage( mFinalImage);
m_DirectControl.Start();
return TRUE; // return TRUE unless you set the focus to a control
}