<4D F736F F F696E74202D20C1A63137B0AD202D20C1F6C7FCC3E6B5B9C3B3B8AE>
|
|
- 동미 내
- 7 years ago
- Views:
Transcription
1 게임엔진 제 17 강지형충돌처리 이대현교수 한국산업기술대학교게임공학과
2 학습목차 광선을이용한지형충돌검사와이를이용한지형위의카메라이동구현. 간단한 world editor 의구현 닌자및로봇을지형위에배치, 이동및선택 쿼리마스크 기능 사용법 다중쿼리마스크의사용방법
3 실습 CamearTerrainMove 지형위를이동하는카메라
4 구현기능 카메라를이동할때, 지형을통과하는일이일어나지않음.
5 구현방법 카메라와지형사이의거리를구하여, 그값이아주작으면카메라의위치를재조정한다. 거리를구하는방법 1. 카메라로부터지형까지광선을발사. 2. 광선과지형간의교점을구한다. 3. 카메라와교점사이의거리를구한다.
6 PlayState.cpp void PlayState::enter() { 중략 실습 mrayscenequery = mscenemgr->createrayquery( Ray() ); 중략 bool PlayState::frameStarted(GameManager* game, const FrameEvent& evt) { 중략 Vector3 campos = mcamera->getposition( ); Ray cameraray( campos, Vector3::NEGATIVE_UNIT_Y ); mrayscenequery->setray( cameraray ); RaySceneQueryResult result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin( ); if ( itr!= result.end() && itr->worldfragment ) { Real terrainheight = itr->worldfragment->singleintersection.y; if ((terrainheight f) > campos.y) mcamera->setposition(campos.x, terrainheight+10.0f, campos.z); 중략
7 bool PlayState::mousePressed(GameManager* game, const OIS::MouseEvent &e, OIS::MouseButtonID id) { if (id == OIS::MB_Right) { CEGUI::MouseCursor::getSingleton().hide(); mrmousedown = true; return true; bool PlayState::mouseMoved(GameManager* game, const OIS::MouseEvent &e) { if (mrmousedown) { mcamera->yaw(degree(-e.state.x.rel)); mcamera->pitch(degree(-e.state.y.rel)); else { CEGUI::System::getSingleton().injectMouseMove(e.state.X.rel, e.state.y.rel); if (e.state.z.rel < 0) { mtransvector = Vector3(0.0f, 0.0f, -1.0f); else if (e.state.z.rel > 0) { mtransvector = Vector3(0.0f, 0.0f, 1.0f); 실습 return true;
8 실행결과 : 지형위의카메라이동
9 마우스입력처리 :mousemoved bool PlayState::mouseMoved(GameManager* game, const OIS::MouseEvent &e) { if (mrmousedown) { mcamera->yaw(degree(-e.state.x.rel)); mcamera->pitch(degree(-e.state.y.rel)); else { CEGUI::System::getSingleton().injectMouseMove(e.state.X.rel, e.state.y.rel); if (e.state.z.rel < 0) { mtransvector = Vector3(0.0f, 0.0f, -1.0f); else if (e.state.z.rel > 0) { mtransvector = Vector3(0.0f, 0.0f, 1.0f); return true;
10 마우스입력처리 :mousepressed, mousereleased bool PlayState::mousePressed(GameManager* game, const OIS::MouseEvent &e, OIS::MouseButtonID id) { if (id == OIS::MB_Right) { CEGUI::MouseCursor::getSingleton().hide(); mrmousedown = true; return true; 오른쪽버튼이눌리면 마우스보기 모드가되므로, 커서를없앤다. bool PlayState::mouseReleased(GameManager* game, const OIS::MouseEvent &e, OIS::MouseButtonID id { if (id == OIS::MB_Right) { CEGUI::MouseCursor::getSingleton().show(); mrmousedown = false; return true; 오른쪽버튼이떼어지면, 마우스보기 모드가해제되므로, 커서를다시표시한다.
11 광선의설정과발사 Vector3 campos = mcamera->getposition( ); Ray cameraray( campos, Vector3::NEGATIVE_UNIT_Y ); mrayscenequery->setray( cameraray ); RaySceneQueryResult result = mrayscenequery->execute(); 발사할광선을설정. 광선의발사에따른결과들 ( 지형과의교점 ) 을저장하는객체. 광선을발사함.
12 거리계산과카메라위치조정 RaySceneQueryResult::iterator itr = result.begin( ); 광선발사의결과는반복자객체 itr 에저장됨. 광선발사의결과는 worldfragment( 여기는지형 ) 와 movable 의리스트임. if ( itr!= result.end() && itr->worldfragment ) { Real terrainheight = itr->worldfragment->singleintersection.y; 교점의 y 좌표가결국은지형의높이가된다. if ((terrainheight f) > campos.y) mcamera->setposition(campos.x, terrainheight+10.0f, campos.z); 카메라높이가지형의높이가 10 이하이면, 강제로카메라를지형보다 10 만큼높게설정한다.
13
14 RaySceneQueryResult 자세히살펴보기 RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin( ); RaySceneQueryResultEntry 의리스트 Real distance; MovableObject* movable; SceneQuery::WorldFragment* worldfragment; distance: 광선시작점으로부터, 교차되는오브젝트까지의거리 movable: MovableObject 엔터티, 광원등과같이장면노드에소속되는개체들. NULL 이면, MovableObject 가아니라는뜻임. worldfragement: 장면관리자에의해생성된 world geometry 의일부분과, 광선이교차된경우. worldframgement 의 type 는 WFT_SINGLE_INTERSECTION 이며 (RaySceneQuery 의결과는항상 ), worldfragment->singleinetersection 은교점을나타내는 Vector3 타입의값임.
15 실습 PlaceNinja 지형위에닌자들을배치
16 구현내용 마우스왼쪽버튼을누르면닌자가지형위에만들어진다.
17 PlayState.cpp 실습 bool PlayState::mousePressed(GameManager* game, const OIS::MouseEvent &e, OIS::MouseButtonID id) { 중략 CEGUI::MouseCursor::getSingleton().hide(); CEGUI::Point mousepos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow->getwidth(), mouse Pos.d_y/mWindow->getHeight()); mrayscenequery->setray(mouseray); RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin( ); if (itr!= result.end() && itr->worldfragment) { char name[16]; sprintf( name, "ninja%d", mcount++ ); Entity *ent = mscenemgr->createentity( name, "ninja.mesh" ); mcurrentobject = mscenemgr->getrootscenenode( )->createchildscenenode( String(name) + "Node", itr->worldfragment->singleintersection ); mcurrentobject->attachobject( ent ); mcurrentobject->setscale( 0.1f, 0.1f, 0.1f ); mlmousedown = true; 중략
18 실습 bool PlayState::mouseMoved(GameManager* game, const OIS::MouseEvent &e) { 중략 CEGUI::System::getSingleton().injectMouseMove(e.state.X.rel, e.state.y.rel); CEGUI::Point mousepos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow->getwidth( ), mousepos.d_y/mwindow->getheight()); mrayscenequery->setray(mouseray); RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin(); if (itr!= result.end() && itr->worldfragment) mcurrentobject->setposition(itr->worldfragment->singleintersection); 후략
19 실행결과 왼쪽마우스버튼을누르면, 닌자가만들어지고, 마우스버튼을누른채로이동시키면닌자가이동된다. 마우스버튼을놓는위치에닌자가배치된다.
20 mousepressed: 마우스클릭위치에닌자를생성하고위치시킴 CEGUI::Point mousepos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow->getwidth(), mousepos.d_y/mwindow->getheight()); mrayscenequery->setray(mouseray); RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin( ); if (itr!= result.end() && itr->worldfragment) { char name[16]; sprintf( name, "ninja%d", mcount++ ); Entity *ent = mscenemgr->createentity( name, "ninja.mesh" ); mcurrentobject = mscenemgr->getrootscenenode( )->createchildscenenode( String(name) + "Node", itr->worldfragment->singleintersection ); mcurrentobject->attachobject( ent ); mcurrentobject->setscale( 0.1f, 0.1f, 0.1f );
21 mousemoved: 왼쪽마우스버튼을이용한로봇의드래깅 bool PlayState::mouseMoved(GameManager* game, const OIS::MouseEvent &e) { 중략 CEGUI::System::getSingleton().injectMouseMove(e.state.X.rel, e.state.y.rel); CEGUI::Point mousepos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow->getwidth( ), mousepos.d_y/mwindow->getheight()); mrayscenequery->setray(mouseray); RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin(); if (itr!= result.end() && itr->worldfragment) mcurrentobject->setposition(itr->worldfragment->singleintersection); 후략
22 바운딩박스의표시 bool PlayState::mousePressed(GameManager* game, const OIS::MouseEvent &e, OIS::MouseButtonID id) { 중략 CEGUI::MouseCursor::getSingleton().hide(); CEGUI::Point mousepos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow->getwidth(), mouse Pos.d_y/mWindow->getHeight()); mrayscenequery->setray(mouseray); RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin( ); if (itr!= result.end() && itr->worldfragment) { char name[16]; sprintf( name, "ninja%d", mcount++ ); Entity *ent = mscenemgr->createentity( name, "ninja.mesh" ); mcurrentobject = mscenemgr->getrootscenenode( )->createchildscenenode( String(name) + "Node", itr->worldfragment->singleintersection ); mcurrentobject->attachobject( ent ); mcurrentobject->setscale( 0.1f, 0.1f, 0.1f ); if (mcurrentobject) mcurrentobject->showboundingbox(true); mlmousedown = true; 중략 실습
23 바운딩박스의해제 bool PlayState::mouseReleased(GameManager* game, const OIS::MouseEvent &e, OIS::MouseButtonID id) { if (id == OIS::MB_Right) { CEGUI::MouseCursor::getSingleton().show(); mrmousedown = false; else if (id == OIS::MB_Left) { CEGUI::MouseCursor::getSingleton().show(); mlmousedown = false; if (mcurrentobject) mcurrentobject->showboundingbox(false); return true; 실습
24 실습과제 #10 지형위를걷는닌자의구현 화살표키이를이용해닌자를이동시킴 ( 걷기 ) 닌자의발이지형에빠지지않게함.
25 실습 SelectNinja 지형위의닌자를선택및이동
26 구현방법 카메라로부터닌자를향해광선을발사해서, 그교차점을구한다.
27 PlayState.cpp bool PlayState::mousePressed(GameManager* game, const OIS::MouseEvent &e, OIS::MouseButtonID id) { 중략 for ( itr = result.begin(); itr!= result.end(); itr++ ) { if (itr->movable && itr->movable->getname().substr(0, 5)!= "tile[") { mcurrentobject = itr->movable->getparentscenenode(); break; else if (itr->worldfragment) { char name[16]; sprintf( name, "ninja%d", mcount++ ); Entity *ent = mscenemgr->createentity( name, "ninja.mesh" ); 실습 중략 mcurrentobject = mscenemgr->getrootscenenode( )->createchildscenenode( String(name) + "Node", itr->worldfragment->singleintersection ); mcurrentobject->attachobject( ent ); mcurrentobject->setscale( 0.1f, 0.1f, 0.1f ); break;
28 bool PlayState::mouseMoved(GameManager* game, const OIS::MouseEvent &e) { 중략 mrayscenequery->setsortbydistance( false ); 실습 후략 RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr = result.begin(); for ( itr = result.begin( ); itr!= result.end(); itr++ ) { if (itr->worldfragment) { mcurrentobject->setposition(itr->worldfragment->singleintersection); break;
29 실행결과
30 mousepressed() 이벤트처리 if (id == OIS::MB_Right) { CEGUI::MouseCursor::getSingleton().hide(); mrmousedown = true; else if (id == OIS::MB_Left) { CEGUI::MouseCursor::getSingleton().hide(); CEGUI::Point mousepos = CEGUI::MouseCursor::getSingleton().getPosition(); mcurrentobject = NULL; Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow->getwidth(), mousepos.d_y/mwindow->getheight()); mrayscenequery->setray(mouseray); mrayscenequery->setsortbydistance( true ); 광선을발사한결과, 만들어진교점들을거리순으로정렬하도록설정. 반복자를통해서얻게되는맨처음교점은, 광선의시작점 ( 즉, 카메라 ) 으로부터가장가까운교점이됨.
31 for ( itr = result.begin( ); itr!= result.end(); itr++) { for 문안에서 itr 를반복함으로써, 광선과교차된오브젝트들을거리가가까운것부터확인해나감. if (itr->movable && itr->movable->getname().substr(0, 5)!= "tile[" ) { 오브젝트가 MovableObject 이지만, 지형오브젝트가아닐경우 결과적으로엔터티일경우에 참고 : 지형장면관리자는지형을여러개의타일로구성된 MovableObject 들을생성해서만든다. 이때오브젝트의이름은 tile[ 로시작된다. mcurrentobject = itr->movable->getparentscenenode( ); break; 엔터티에해당되는노드가얻어지면, 그노드를선택하면되므로, 더이상다른교차되는오브젝트들은처리할필요가없다. else if (itr->worldfragment) {
32 mousemoved() 이벤트처리 bool PlayState::mouseMoved(GameManager* game, const OIS::MouseEvent &e) { if (mrmousedown) { mcamera->yaw(degree(-e.state.x.rel)); mcamera->pitch(degree(-e.state.y.rel)); else if ( mlmousedown ) { CEGUI::System::getSingleton().injectMouseMove(e.state.X.rel, e.state.y.rel); CEGUI::Point mousepos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow->getwidth(), mousepos.d_y/mwindow->getheight()); mrayscenequery->setray(mouseray); dragged 상태에서는지형상의교점만을찾으면됨. 거리를기준으로정렬하면, 지형이맨뒤로오게되므로, 다음 for 루프에서쓸데없이다른오브젝트들을처리하게된다. 따라서, 거리기준정렬을 false 로설정. RaySceneQueryResult &result = mrayscenequery->execute(); RaySceneQueryResult::iterator itr; for ( itr = result.begin( ); itr!= result.end(); itr++ ) { if ( itr->worldfragment ) { mcurrentobject->setposition( itr->worldfragment->singleintersection ); break;
33 엔터티의선택시고려할점 닌자와로보트가카메라의시선에겹쳐있는경우 광선을발사하면, 닌자와로봇중앞에있는것과먼저교차하게된다. 만약, 닌자가앞에있고, 로봇이뒤에있는상황에서, 로봇을선택하려면? 엔터티의이름을차례로살펴보면서, 로봇이름을찾으면된다. 문제점은? 교차되는엔터티가매우많을경우, 특정종류의엔터티를찾으려면, 교차되는모든엔터티를일일이검사해야한다. 결국시간이많이걸린다 성능이떨어진다.
34 쿼리마스크 (Query Mask) 란? Query Mask 모든 MovableObject 에고유한마스크값을설정 RaySceneQuery 에서, 광선을발사하기전에, 교차점을찾고자하는엔터티들의마스크값을지정. 지정된마스크값을가지는엔터티들에대해서교차점을찾는동작이수행됨.
35 실습 QueryMask 닌자와로봇을효과적으로선택
36 PlayState.h class PlayState : public GameState { 중략 실습 enum QueryFlags { NINJA_MASK = 1 << 0, ROBOT_MASK = 1 << 1 ; 중략
37 PlayState.cpp bool PlayState::mousePressed(GameManager* game, const OIS::MouseEvent &e, OIS::Mouse ButtonID id) { 중략 mrayscenequery->setquerymask(mninjamode? NINJA_MASK : ROBOT_MASK); 중략 ent->setqueryflags(ninja_mask); 중략 ent->setqueryflags(robot_mask); 후략 실습
38 실행결과 닌자모드에서로봇을클릭하면, 뒤에서있는닌자가선택된다.
39 마스크값기본값정의 class PlayState : public GameState { 중략 각엔터티마다구별될수있는마스크값을부여. enum QueryFlags { NINJA_MASK = 1 << 0, ROBOT_MASK = 1 << 1 ; 중략
40 엔티티가생성될때, 마스크값을부여 Entity *ent; char name[16]; if ( mninjamode ){ sprintf( name, "Ninja%d", mcount++ ); ent = mscenemgr->createentity( name, "ninja.mesh" ); ent->setqueryflags( NINJA_MASK ); else { sprintf( name, "Robot%d", mcount++ ); ent = mscenemgr->createentity( name, "robot.mesh" ); ent->setqueryflags( ROBOT_MASK );
41 광선발사할때, 마스크값을설정 Ray mouseray = mcamera->getcameratoviewportray(mousepos.d_x/mwindow- >getwidth(), mousepos.d_y/mwindow->getheight()); mrayscenequery->setray(mouseray); mrayscenequery->setsortbydistance(true); mrayscenequery-> setquerymask(mninjamode? NINJA_MASK : ROBOT_MASK); 광선을발사하기전에 (execute() 함수실행전에 ), query mask 를현재모드에따라, ROBOT_MASK 또는 NINJA_MASK 로설정한다. RaySceneQueryResult &result = mrayscenequery->execute(); 마스크값으로미리설정된엔터티들에대해서만, 교차점검사가이루어진다. RaySceneQueryResult::iterator itr = result.begin( );
42 다중쿼리마스크값의정의 각각의쿼리마스크는이진수로표현했을때, 반드시한개의비트 1 만을가져야하며, 그자리수가각각달라야한다
43 다중쿼리마스크값의정의 각각의쿼리마스크는이진수로표현했을때, 반드시한개의비트 1 만을가져야하며, 그자리수가각각달라야한다. 최대 32 개의쿼리마스크값을만들수있다 = 1<< = 1<< = 1<< = 1<< = 1<< = 1<< = 1<< = 1<<7
44 다중쿼리마스크의사용예 (1) enum QueryFlags { FRIENDLY_CHARACTERS = 1<<0, ENEMY_CHARACTERS = 1<<1, STATIONARY_OBJECTS = 1<<2 ; FRIENDLY_CHARACTERS 타입의경우에만, RaySceneQuery 의실행. mrayscenequery->setquerymask( FRIENDLY_CHARACTERS ); ENEMY_CHARACTERS 또는 STATIONARY_OBJECTS 의경우에, RaySceneQuery 실행 mrayscenequery->setquerymask(enemy_characters STATIONARY_OBJECTS);
45 다중쿼리마스크의사용예 (2) FRIENDLY_CHARACTERS 타입이아닌경우에만, RaySceneQuery 의실행. mrayscenequery->setquerymask( ~FRIENDLY_CHARACTERS ) FRIENDLY_CHARACTERS 또는 STATIONARY_OBJECTS 가아닌경우에만 RaySceneQuery 실행 mrayscenequery ->setquerymask(~(friendly_characters STATIONARY_OBJECTS));
46 다중쿼리마스크의사용예 (3) mrayscenequery->setquerymask( 0 ); 지형과만나는점만을얻고자할때는, MovableObject 와의교점을찾을필요가없다. 0 으로쿼리마스크를설정하면, WorldFragment 오브젝트만을얻어낼수있다. SetQueryMask() Basically MovableObject instances will only be returned from this query if a bitwise AND operation between this mask value and the MovableObject::getQueryFlags value is non-zero.
47 QueryTypeMask 사용자가정의하는쿼리마스크외에 SceneManager 에서미리정의된또한종류의쿼리마스크로써 QueryTypeMask 가있음. QueryMask 는오브젝트인스턴스하나하나에마스크를부여. QueryTypeMask 는오브젝트그룹에마스크를부여. 모두 6 종류의마스크가있음. 설정된기본값은 ENTITY_TYPE_MASK 사용법 : mrayscenequery->setquerytypemask(scenemanager::fx_type_mask); WORLD_GEOMETRY_TYPE_MASK //Returns world geometry. ENTITY_TYPE_MASK //Returns entities. FX_TYPE_MASK //Returns billboardsets / particle systems. STATICGEOMETRY_TYPE_MASK //Returns static geometry. LIGHT_TYPE_MASK //Returns lights. USER_TYPE_MASK_LIMIT //User type mask limit.
슬라이드 1
핚국산업기술대학교 제 17 강지형충돌처리 이대현교수 학습안내 학습목표 광선을이용한다양한방식의충돌검사방법을익힌다. 학습내용 광선을이용한지형충돌검사와이를이용한지형위의캐릭터이동구현. 간단한 world editor의구현캐릭터지형위에배치, 이동및선택쿼리마스크 기능 사용법 다중쿼리마스크의사용방법 실습 TerrainWalk 지형위에서이동하는캐릭터 구현방법 캐릭터로부터지형까지광선을발사.
More information슬라이드 1
한국산업기술대학교 제 5 강스케일링및회전 이대현교수 학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space) SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z)
More information(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)
게임엔진 제 13 강 ofusion 씬구성 이대현교수 한국산업기술대학교게임공학과 학습목차 Ofusion 을이용한 export Export 된씬의재현 씬노드애니메이션을이용한수동카메라트래킹 ofusion OGRE3D 엔진용 3D MAX 익스포터 http://www.ofusiontechnologies.com ofusion 의특징 Realtime Viewport 3D
More information슬라이드 1
핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton
More information슬라이드 1
핚국산업기술대학교 제 9 강캐릭터컨트롤러 이대현교수 학습안내 학습목표 씬노드의구성및회전방법을응용하여, 구면카메라및캐릭터컨트롤을구현해본다. 학습내용 구면카메라구현을위한씬노드구성및회전캐릭터컨트롤을위한씬노구구성및회전 카메라및캐릭터컨트롤구현목표 카메라컨트롤 WOW의카메라컨트롤 ( 구면카메라 ) 마우스를이용한좌우패닝, 상하피칭. 휠스크롤을이용한줌인및줌아웃. 캐릭터를중심으로회전됨.
More information(Microsoft PowerPoint - \301\24615\260\255 - \303\346\265\271\303\263\270\256)
게임엔진 제 15 강충돌처리 이대현교수 한국산업기술대학교게임공학과 학습목차 엔터티본구조의이해 콘솔입출력방법 본의위치좌표의획득 충돌오브젝트를이용한충돌처리기법 OgreOPCODE 를이용한충돌처리실습 본 (Bone) 뼈대애니메이션 (skeletal animation) 의기본구조. 위치와방향정보를가지고있는조인트. 본이여러개모여서 ( 트리구조 ) 하나의뼈대를이루게됨.
More information<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>
게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()
More information슬라이드 1
한국산업기술대학교 제 10 강광원 이대현교수 학습안내 학습목표 오우거엔진의광원을이용하여 3D 공갂에서광원을구현해본다. 학습내용 평면메쉬의생성방법광원의종류및구현방법 광원의종류 : 주변광원 주변광원 (Ambient Light) 동일한밝기의빛이장면안의모든물체의표면에서일정하게반사되는것. 공갂안에존재하는빛의평균값이론적인광원 광원의종류 : 지향광원 지향광원 (Directional
More information<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>
게임엔진 제 7 강광원과그림자 이대현교수 한국산업기술대학교게임공학과 학습내용 광원의종류 평면메쉬의생성방법 광원의구현 그림자의종류와구현 광원의종류 : 주변광원 주변광원 (Ambient Light) 동일한밝기의빛이장면안의모든물체의표면에서일정하게반사되는것. 공간안에존재하는빛의평균값 이론적인광원 광원의종류 : 지향광원 지향광원 (Directional Light) 한방향으로무한히뻗어나가는빛.
More information<4D F736F F F696E74202D20C1A63134B0AD202D20BBE7BFF8BCF6BFCD20C8B8C0FC>
게임엔진 제 14 강사원수와회전 이대현교수 한국산업기술대학교게임공학과 학습목차 오일러회전의개념과특성의이해 사원수의개념 사원수를이용한회전실습 Slerp 구면보간 닌자의부드러운회전실습 오일러 (Euler) 회전 오일러각도 (Euler Angles) 원리를이용한회전 오일러각도 : 3 차원공간에서물체가취할수있는방향을나타내는데사용되는세개의각도값의조합 18 세기수학자오일러의착안점
More information슬라이드 1
한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic
More information슬라이드 1
핚국산업기술대학교 제 7 강카메라와뷰포트 이대현교수 학습안내 학습목표 오우거엔짂의입력처리방식을종합적으로이해한다. 오우거엔짂의카메라의활용방법및뷰포트의활용방법을이해하고다양한방식으로게임화면을구성해본다. 학습내용 오우거엔짂의입력처리방식. 키입력밎마우스입력리스너인터페이스. 카메라의이동및회전. 시야절두체컬링의이해. 뷰포트를이용한 PIP의구현. 오우거엔진의입력처리방식 무버퍼입력
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More information(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372)
게임엔진 제 8 강광원과재질 이대현교수 한국산업기술대학교게임공학과 학습목차 조명모델 광원의색상설정 재질 분산성분의이해 분산재질의구현 경반사성분의이해 경반사재질의구현 조명 (Illumination) 모델 조명모델 광원으로부터공간상의점들까지의조도를계산하는방법. 직접조명과전역조명 직접조명 (direct illumination) 모델 물체표면의점들이장면내의모든광원들로부터직접적으로받는빛만을고려.
More information* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f
JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage
More information<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>
게임엔진 제 10 강지형과하늘의렌더링 이대현교수 한국산업기술대학교게임공학과 학습목차 지형렌더링 하늘렌더링 육면체하늘 (SkyBox) 반구하늘 (SkyDome) 평면하늘 (SkyPlane) 실습 Terrain 지형의렌더링 장면설정 Y Step 1: 장면관리자설정 Step 2: 닌자의배치 Step 3: 광원생성및그림자표시 Step 4: 장면에지형을배치 X Z PlayState.cpp
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More informationUI TASK & KEY EVENT
T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력
More information(Microsoft PowerPoint - \301\24611\260\255 - \276\326\264\317\270\336\300\314\274\307)
게임엔진 제 11 강애니메이션 이대현교수 한국산업기술대학교게임공학과 학습목차 메쉬뷰어 (Mesh Viewer) 의설치및실행. 애니메이션기초이론 오우거엔진의애니메이션기법 정지상태의닌자애니메이션. 걷기상태의닌자애니메이션. 로봇의이동속도의조절. 지형위를돌아다니는닌자의애니메이션 메쉬뷰어 (Mesh Viewer) 설치 강의실자료실로부터 CeguiMeshViewer_Setup.exe
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More information게임 기획서 표준양식 연구보고서
ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ
More information슬라이드 1
핚국산업기술대학교 제 8 강사원수와회전 이대현교수 학습안내 학습목표 사원수의개념을이해하고, 오우거엔짂의사원수관렦함수실습을통해서공갂상에서 3D 오브젝트를자유자재로회전핛수있는능력을기른다. 학습내용 오일러회전의개념과특성의이해. 사원수의개념. 사원수를이용핚회전실습. Slerp 구면보갂. 캐릭터의부드러운회전실습. 오일러 (Euler) 회전 오일러각도 (Euler Angles)
More information유니티 변수-함수.key
C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)
More information제 1 장 기본 개념
이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder)
More informationMicrosoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600
균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at
More informationPowerPoint 프레젠테이션
@ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program
More informationMicrosoft PowerPoint - 07-Data Manipulation.pptx
Digital 3D Anthropometry 7. Data Analysis Sungmin Kim SEOUL NATIONAL UNIVERSITY Body 기본정보표시 Introduction 스케일조절하기 단면형상추출 단면정보관리 3D 단면형상표시 2 기본정보표시및스케일조절 UI 및핸들러구성 void fastcall TMainForm::BeginNewProject1Click(TObject
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More information제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호
제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법
More information<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>
2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)
More information슬라이드 1
2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More information어댑터뷰
04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More informationPowerPoint 프레젠테이션
@ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field
More information(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public
Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return
More informationMicrosoft PowerPoint - es-arduino-lecture-03
임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습
More informationvar answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");
자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More information쉽게 풀어쓴 C 프로그래밍
제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using
More information윈도우시스템프로그래밍
데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationAnalytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras
Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More informationSpring Data JPA Many To Many 양방향 관계 예제
Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1
More informationJUNIT 실습및발표
JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More information03장.스택.key
---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():
More information; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i
; struct point p; printf("0이아닌점의좌표를입력하시오 : "); scanf("%d %d", &p.x, &p.y); if (p.x > 0 && p.y > 0) printf("1사분면에있다.\n"); if (p.x < 0 && p.y > 0) printf("2사분면에있다.\n"); if (p.x < 0 && p.y < 0) printf("3사분면에있다.\n");
More information@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a
1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL
More information슬라이드 1
Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More informationchap x: G입력
재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘
More informationMicrosoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme
8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean
More informationUI TASK & KEY EVENT
2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize
More information12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont
12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다. 12.1 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont( in LPDIRECT3DDEVICE9 pdevice, in INT Height, in UINT
More informationgnu-lee-oop-kor-lec10-1-chap10
어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class
More informationVisual Basic 반복문
학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For
More informationPowerPoint Template
SOFTWARE ENGINEERING Team Practice #3 (UTP) 201114188 김종연 201114191 정재욱 201114192 정재철 201114195 홍호탁 www.themegallery.com 1 / 19 Contents - Test items - Features to be tested - Features not to be tested
More informationMicrosoft PowerPoint - chap04-연산자.pptx
int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More informationMicrosoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx
2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html
More informationMicrosoft PowerPoint - IP11.pptx
열한번째강의카메라 1/43 1/16 Review 2/43 2/16 평균값 중간값 Review 3/43 3/16 캐니에지추출 void cvcanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size = 3); aperture_size = 3 aperture_size
More informationPowerPoint Presentation
객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television
More informationLab 4. 실습문제 (Circular singly linked list)_해답.hwp
Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular
More informationuntitled
자료형 기본자료형 : char, int, float, double 등 파생자료형 : 배열, 열거형, 구조체, 공용체 vs struct 구조체 _ 태그 _ 이름 자료형멤버 _ 이름 ; 자료형멤버 _ 이름 ;... ; struct student int number; // char name[10]; // double height; // ; // x값과 y값으로이루어지는화면의좌표
More information<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.
More information사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을
IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.
More information- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=
JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.
More information초보자를 위한 C# 21일 완성
C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More information제8장 자바 GUI 프로그래밍 II
제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로
More information슬라이드 1
프로세싱 광운대학교로봇학부박광현 프로세싱실행 2 C:\processing-3.2.1 폴더 창나타내기 실행 정지 3 폭 높이 600 400 도형그리기 배경칠하기 5 background(255, 255, 255); R G B background(255, 0, 0); background(255, 122, 0); 선그리기 6 background(255, 122, 0);
More information13주-14주proc.PDF
12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float
More information3D MAX + WEEK 9 Hansung Univ. Interior Design
3D MAX + WEEK 9 Hansung Univ. Interior Design 3D MAX + UNREAL ENGINE 4 4 4 이용하여 애니메이션 만들기 Max에서 준비하기 공간 만들기 Max에서 준비하기 박공지붕 만들기: 5000mm만큼 올리기 Max에서 준비하기 창만들기: 한쪽 벽만 창 제작 Max에서 준비하기 벽체 분리:Detach Max에서 준비하기
More information사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사
IDIS Mobile Android 사용설명서 Powered by 사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사양 및 버전에 따라 일부
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationEndpoint Protector - Active Directory Deployment Guide
Version 1.0.0.1 Active Directory 배포가이드 I Endpoint Protector Active Directory Deployment Guide 목차 1. 소개...1 2. WMI 필터생성... 2 3. EPP 배포 GPO 생성... 9 4. 각각의 GPO 에해당하는 WMI 연결... 12 5.OU 에 GPO 연결... 14 6. 중요공지사항
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationC프로-3장c03逞풚
C h a p t e r 03 C++ 3 1 9 4 3 break continue 2 110 if if else if else switch 1 if if if 3 1 1 if 2 2 3 if if 1 2 111 01 #include 02 using namespace std; 03 void main( ) 04 { 05 int x; 06 07
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More information쉽게 풀어쓴 C 프로그래밊
Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.
More informationMicrosoft PowerPoint - Java7.pptx
HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information4장기본프로그래밍2
4-2 마우스 (Mouse) 마우스이벤트 Click 이벤트 마우스버튼이눌렸다가떼어질때발생 DblClick 이벤트 마우스버튼이두번눌렸다가떼어질때발생 MouseDown 이벤트 마우스버튼이눌렸을때발생 MouseUp 이벤트 마우스버튼이떼어질때발생 MouseMove 이벤트 마우스가움직일때발생 DragOver 이벤트 마우스버튼을누른상태에서끌기를했을때발생 DragDrop
More informationchap10.PDF
10 C++ Hello!! C C C++ C++ C++ 2 C++ 1980 Bell Bjarne Stroustrup C++ C C++ C, C++ C C 3 C C++ (prototype) (type checking) C C++ : C++ 4 C C++ (prototype) (type checking) [ 10-1] #include extern
More informationData Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager
Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1
More information2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관
2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관 2015 개정교육과정에따른정보과평가기준개발연구 연구협력진 머리말 연구요약 차례 Ⅰ 서론 1 Ⅱ 평가준거성취기준, 평가기준, 성취수준, 예시평가도구개발방향 7 Ⅲ 정보과평가준거성취기준, 평가기준, 성취수준, 예시평가도구의개발 25 Ⅳ 정보과평가준거성취기준, 평가기준, 성취수준, 예시평가도구의활용방안
More informationContents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin
OSP Stage 2040 < Design > 그놈! Clone Checker Project Team T4 Date 2016-04-12 Team Information 201411258 강태준 201411265 김서우 201411321 홍유리 Team 4 1 Contents Activity 2041. Define Real s Activity 2042. Define
More information소프트웨어공학 Tutorial #2: StarUML Eun Man Choi
소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2
More informationMicrosoft Word - src.doc
IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...
More information윈도우즈프로그래밍(1)
제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장
More information<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>
제14장 동적 메모리 할당 Dynamic Allocation void * malloc(sizeof(char)*256) void * calloc(sizeof(char), 256) void * realloc(void *, size_t); Self-Referece NODE struct selfref { int n; struct selfref *next; }; Linked
More information