現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::アニメーション


OpenCV::アニメーション2


問題


ウィンドウを作り、青い点が「ウィンドウの中心」を中心にしてぐるぐる回るアニメーションを実現せよ。
その他条件:
 ESCキーで終了できる。

答え



#include <cv.h>
#include <highgui.h>
#include <cstdio>
#include <cmath>
#include <iostream>

using namespace std;

inline void CV_MAIN_LOOP();


CvSize window={300,300};//ウィンドウサイズ

IplImage *imgA;
int main( int argc, char **argv)
{

imgA = cvCreateImage(window,IPL_DEPTH_8U,3);
cvSet (imgA, cvScalarAll (255), 0);

cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);


CV_MAIN_LOOP();



cvReleaseImage( &imgA );
cvDestroyWindow("window");

return 0;
}


/********** ここからメインループ ********************/
inline void CV_MAIN_LOOP()
{

#define PI_OVER_180 0.0174532925

int frame=0;
char key;
int x,y;

while(1)
{
cvSet (imgA, cvScalarAll (255), 0);
x = window.width/2 + int(50*cos(frame*PI_OVER_180));
y = window.height/2 + int(50 *sin(frame*PI_OVER_180));
cvCircle(imgA,cvPoint(x,y),3,cvScalar(255,0,0),CV_FILLED);
cvShowImage("window",imgA);


key=(char)cvWaitKey(1);
if(key=='\033') break;

frame+=1;
if(frame>360) frame = 0;
}

}

メモ


1ミリ秒キー入力を待つことで、キーによる終了処理をチェック
×

この広告は60日間更新がないwikiに表示されております。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます