<353120C0CCB8E9C0E72D4E504320C0CEB0F820C1F6B4C9C0BB20C0A7C7D120B9ABB8AEC1FEB1E220B1B8C7F62E687770>

Size: px
Start display at page:

Download "<353120C0CCB8E9C0E72D4E504320C0CEB0F820C1F6B4C9C0BB20C0A7C7D120B9ABB8AEC1FEB1E220B1B8C7F62E687770>"

Transcription

1 한국산학기술학회논문지 Vol. 11, No. 12 pp , 2010 NPC 인공지능을위한무리짓기구현 유현지 1, 이면재 1, 김경남 2 1 백석대학교정보통신학부 2 중앙대학교첨단영상대학원 Flocking Implementation for NPC AI Hyun-ji yoo 1, Myoun-Jae Lee 1 and Kyoung-Nam Kim 2 1 Department of Information & Communication, Baekseok University 2 GSAIM, Chung-Ang University 요약무리를형성하는 NPC들의인공지능을실세계의무리짓기와유사하게구현하는것은게임의재미를증가시키는요인이될수있다. 이를위하여, 본논문에서는분석된실세계에서의물고기무리짓기의행동패턴을설계하고오우거엔진을이용하여구현한다. 구현된무리짓기의효용성을판단하기위하여실세계의물고기떼의행동패턴과비교한다. 비교결과, 구현된물고기떼의행동패턴과실세계의행동패턴은비슷함을보인다. Abstract An implementation of NPC AI(artifical intelligence) is similar with real world's flocking can increase fun factor of game. To this end, we design fish flocking patten of analyzed real world, implement using Ogre engine in this paper. To determine the usefulness of implemented fish flocking, we compare fish flocking in real world with implemented fish flocking. Implemented behavioral patterns of fish flocking show similar behavioral patterns of fish flocking in real world. Key Words : Artificial intelligence(ai), NPC flocking, NPC AI 1. 서론 우리가살고있는현세상에서는다양한동물들이무리를지어행동한다. 새무리들이일정한패턴을만들어목적지까지날아가거나, 물고기들이떼를지어다니거나, 개미들이일렬로맞추어다니거나벌들이무리를지어공격하는것등의여러동물들이떼를지어생활하고있다. 이러한실세계의무리짓기 (Flocking) 에대한연구는생물학적관점으로진행되고있다. 새가있을경우와없을경우에열대숲에서병정개미들이먹이포획양을측정하거나 [1], 병정개미들이먹이를먹을수있는세개의경로를만들어놓은후각병정개미들의움직임을살펴보거나 [2], 먹을것을제공하거나물고기의찢겨진조각을어항에던져서물고기떼에게공포감을조성하는경우등에서물고기들의무리짓기형태를분석하거나 [3], 무리들가운데정보를전달하는방법 [4] 에관한연구등이있 다. 그림 1은병정개미와물고기무리짓기를보여주고있다. (a) 병정개미 (b) 물고기 [ 그림 1] 무리짓기게임에서무리짓기는그룹을형성하는 NPC(Non Player Character) 의행동에주로사용된다. 대부분의게임에서 NPC들은이동시스템과애니메이션재생시스템을통하여조정된다 [5]. 즉무리를형성하여일정한패턴 * 교신저자 : 김경남 (hsfruit@lycos.co.kr) 접수일 10 년 10 월 15 일수정일 10 년 10 월 28 일게재확정일 10 년 12 월 17 일 5083

2 한국산학기술학회논문지제 11 권제 12 호, 2010 으로캐릭터를공격하거나, 도망갈때사용된다. 또한일정한패턴으로무리를지어특정목표에난입하거나대열을맞추어서이동하는데사용된다. 이러한방법들은무리에속한모든 NPC에적용된다. 무리에적용되는 AI(Artifical Intelligence) 알고리즘같은것이단순할경우움직임의패턴이단순하므로게임의재미가반감된다. 결과적으로, 게이머들은 NPC들의단순한이동때문에쉽게게임을정복할수있으며, 게임의재미또한감소될수있다. 본논문은이를개선하기위하여생물학적인무리짓기이론을게임 NPC 인공지능에접목하기위한것이다. 이를위하여물고기무리짓기연구 [3] 를설계하고, 오우거 (Ogre) 엔진을이용하여구현한다. 그리고, 구현된무리짓기와실세계의무리짓기의패턴을비교하여실세계의무리짓기형태를 NPC들의인공지능에적용될수있음을보여준다. 본논문의구성은다음과같다. 2장에서물고기무리짓기연구 [3] 와오우거엔진을간략하게소개한다. 3장에서물고기무리짓기를설계하고, 구현한다. 그리고 4장에서결론및추후연구방향을기술한다. 의집단행동을보이도록유도하는규칙이다 [6,7]. Reynolds가제안한무리짓기행동에는충돌회피와응집이있다. 충돌회피는개체간충돌을피하기위한최소거리를유지하기위한규칙으로충돌회피영역 (δ) 을항상모든개체들이최소로유지해야한다. 응집은개체들이모두동일한방향을향하거나모일수있는규칙으로상호작용영역 (ρ) 안에있는개체들간에서로방향과위치정보를교환한다. 식 (1)[4] 은충돌회피를위한것으로 시간에개체 의충돌회피영역에개체 가포함된경우에개체 의이동방향을나타낸다. 와 는각각 시간의 개체 의위치벡터와방향벡터를각각의미하며 는 개체가이동하려는이동방향을나타낸다. 개체 의회피영역에있는개체 에대하여개체 와의거리에대한개체 와의벡터요소의차이를모두합한값의음의방향, 즉반대방향으로이동함을표현한다. (1) 2. 관련연구 2.1 오우거엔진 오우거엔진은 3D 그래픽엔진으로영국의 Stave ' sinbad' Streeting라는소프트웨어엔지니어가 2001년개발하고, 2010년 4월에 1.7 버전까지배포되었다. 오우거엔진은 C++ 기반의객체지향인터페이스방식의설계로간결한클래스와인터페이스를제공하고, Direct 3D와 OpenGL을동시에지원한다. 오우거 3D 그래픽엔진의구조는 Root를기준으로장면관리자 (Scene Manager), 랜더링 (Rendering), 자원관리자 (Resource Manager) 의 3부분으로나뉜다. 장면관리자는화면에보여지는객체, 카메라, 광원, 평면과같이장면을보여주기위해필요한것들을모두관리한다. 자원관리자는이미지, 객체에입힐메쉬, 하늘을꾸미기위한메쉬, 음악과같이화면을꾸며주는자원들을관리한다. 렌더링은장면관리자와자원관리자에의해설정된객체의내용을화면에출력해주는일을한다. 2.2 무리짓기이론무리짓기는 1987년 Craig Reynolds가발표한논문에서처음소개된기법으로물고기떼, 새떼와같이무리 응집은개체 ὶ의상호작용영역 ρ에개체 가위치했을때같은방향으로모이게하는것으로식 (2) 는이를나타낸다. 첫번째항은위치벡터를나타내고두번째항은방향벡터를나타낸다. (2) 충돌회피영역 δ와상호작용영역 ρ에있지않는개체들은각개체가진행하는방향대로이동한다. 식 (3) 은이동하려는방향벡터가이전방향벡터값을그대로반영함을보여준다. (3) 식 (4) 는식 (1) 과식 (2) 와식 (3) 의경우중에서개체의방향벡터를구하고새로운위치벡터를구하는것을보여준다. 첫번째항은위치벡터를나타내고 2번째항은식 (1), 식 (2), 그리고식 (3) 을이용하여계산된방향벡터와일정한시간 ( ), 그리고이동속도인 를곱한것이다. (4) 5084

3 NPC 인공지능을위한무리짓기구현 3. 무리짓기설계및구현 3.1 물고기무리짓기의설계 표 1은 2장에서언급된실세계의물고기무리짓기형태 [3] 과기존연구들 [8,9] 를바탕으로물고기무리짓기를의사코드 (pseudo code) 로설계한것이다. 는현재위치벡터와방향벡터를계산하기위한물고기번호이고, j는참조되는물고기번호이다. N은총물고기마리수이다. 단계 (5) 에서는물고기 i의충돌회피영역안에물고기 j가있는지판단하여이값이참인경우에, 단계 (6) 에서식 (1) 을이용하여방향벡터를구한다. 단계 (7) 에서는물고기의상호작용영역안에물고기 j가있는지판단하여이값이참인경우에, 단계 (8) 에서식 (2) 을이용하여방향벡터를구한다. 단계 (9) 에서는단계 (5) 와단계 (7) 에서의이두조건을만족하지못한물고기의경우단계 (10) 에서식 (3) 을이용하여위치벡터를구한다. 단계 (11) 에서는식 (4) 을이용하여물고기 i의새로운위치벡터를구한다. [ 표 1] 물고기무리짓기설계 (1) for(i=1;i<=n;i++) (2) generate position vector, direction vector (3) for(i=1;i<=n;i++) (4) for(j=1;j<=n;j++){ (5) if j in avoidance range of collision (6) compute using equation(1) (7) else if j in interaction range of (8) compute using equation(2) (9) else (10) compute using equation(3) (11) compute position vector(equation(4)) (12) 라의위치 ( 단계 (5)) 와시점 ( 단계 (6)) 을설정하고단계 (4) 에서생성된카메라를갖는뷰포트를만든다 ( 단계 (7)). 그리고주변광원을설정한다 ( 단계 (8)). 단계 (9) 부터단계 (13) 까지는물고기개체를만드는과정이다. 단계 (10) 에서는물고기메쉬 (f.mesh) 를로드하여엔티티를생성하고단계 (11) 에서는위치벡터를생성하기위하여어항의크기인 200보다작은숫자를랜덤하게생성하는과정이다. 현재구현되는프로그램은 x, z 평면에물고기가그려진다. 단계 (12) 에서는장면노드인 fish를생성하고이노드의위치를단계 (11) 에서생성된좌표로설정한다. 단계 (13) 에서는단계 (10) 에서생성된 fishent 엔티티를장면노드인 fish에연결시킨다. [ 표 2] MainListener 클래스생성자 class MainListener : public FrameListener{ public: MainListener(){ (1) mroot=new Root(); (2) mwindow=mroot->getautocreatedwindow(); (3) mscenemgr=mroot->createscenemanager(); (4) mcamera = mscenemgr->createcamera("cam"); (5) mcamera->setposition(); (6) mcamera->lookat(); (7) mviewport = mwindow->addviewport(mcamera); (8) mscenemgr->setambientlight(); (9) for(i=0; i<n<i++)){ (10) fishent[i]=mscenemgr->createentity(n,"f.mesh"); (11) x= rand()%200, z= rand()%200; (12) fish[i]=mscenemgr->getrootscenenode()->create ChildSceneNode(String(name)",Vector3(x,0,z); (13) fish[i]->attachobject(fishen[i]); 3.2 물고기무리짓기구현 표 2는 FrameListener 클래스를상속받은 MainListener 의일부를보여준다. FrameListener 클래스는프레임단위로처리해야할일들을기술하는클래스로이클래스를상속한클래스를오우거엔진에등록하면자동적으로프레임이시작되기전에는 framestarted() 함수를호출하고렌더링이된후에는 frameended() 함수를호출한다. 루트객체 ( 단계 (1)) 와윈도우 ( 단계 (2)) 와장면관리자 ( 단계 (3)), 카메라 ( 단계 (4)) 를각각생성한다. 이후에카메 표 3은 MainListener 클래스의 framestarted() 메소드의일부분을보여주는데이는 [ 표 1] 의단계 (3) 부터단계 (11) 까지의과정을구현한것이다. 단계 (10) 은물고기의새로운위치를설정하는부분이다. 해당프레임이렌더링된후에 frameended() 메소드에서는별도의일을처리하지않고항상 true를반환한다. 5085

4 한국산학기술학회논문지제 11 권제 12 호, 2010 [ 표 3] Main Listener 클래스의 framestarted() (1) bool framestarted(const FrameEvent &evt){ (2) for(i=0; i<n;i++) (3) for(j=0;j<n;j++) { (4) if (i==j) continue; (5) if (collision_range(i,j)) (6) d[i]=equation(1); (7) else if (interaction_range(i,j)) (8) d[i]=equation(2); (9) else d[i]=equation(3); (10) fishnode[i]->setposition(fish[i]->getposition() (11) +d[i]*t*s); (12) (13) (14) (15) bool frameended(const FrameEvent &evt){ (16) return true; (17) 표 4는초기화과정과렌더링을기술하는 game 클래스의일부를보여준다. 단계 (2) 에서는루트객체인 mroot를생성하고단계 (4) 에서는윈도우를생성하고단계 (6) 에서는리소스그룹관리자를초기화한다. 단계 (8) 에서는 mmainlistener 객체를생성하고, mroot 객체의프레임리스너로 mmainlistener를등록한다 ( 단계 (9)). go() 함수에서는 startrendering() 함수를호출하여렌더링을지속한다 ( 단계 (13)). [ 표 4] game 클래스 class game { (1) game() { (2) mroot = new Root("plugins.cfg","ogre.cfg", (3) "log.txt"); (4) mwindow = mroot->initialise(true, "init"); (5) (6) // 리소스그룹관리자초기화 (7) (8) mmainlistener = new MainListener(mRoot); (9) mroot->addframelistener(mmainlistener); (10) (11) (12) void go() { (13) mroot->startrendering(); (14) 표 5는 main.cpp의일부를보여준다. 게임클래스객체인 app를생성하고 ( 단계 (1)), 단계 (3) 에서게임루프에진입한다. 그리고, 예외가발생한경우에예외처리를수행한다 ( 단계 (4)). [ 표 5] main() 함수 int main(int argc, char *argv[]) { (1) game app; (2) try { (3) app.go(); (4) catch( Ogre::Exception& e ) { (5) MessageBox( NULL, "exception has occurred!"); (6) (7) return 0; 3.3 성능평가물고기무리짓기를구현하기하기위해사용된오우거 SDK 버전은 1.4.6이고컴파일러는 Visual C++ express 2005이다. 실험에사용된컴퓨터 CPU는 Intel core E7200 으로 2.53GHz이고 RAM은 2GB, 그래픽메모리는 512MB이고운영체제는 Microsoft XP Pro이다. 실험에사용된조건은 D.J. HOARE et al.[3] 에서의무리짓기환경과동일하다. 구현시사용된물고기의수는 10마리, 어항의크기는정사각형크기로가로 200, 세로 200의크기를갖는다. 응답대기시간 를 0.1로설정하고물고기의이동속도 s는 1.25, 물고기의크기는 4cm 로설정한다. 충돌회피영역 δ은 1BL(Body Length) 로설정하는데, 1BL은 4cm의값을갖는다. 상호작용영역 ρ는 2BL로설정한다. 물고기의초기위치와방향은랜덤함수를이용하여생성된다. 그림 2는시뮬레이션시작시의화면으로물고기의위치와, 방향이모두랜덤하게주어진상태로응집과정렬이되어있지않음을확인할수있다. [ 그림 2] 시작화면 5086

5 NPC 인공지능을위한무리짓기구현 그림 3은부분정렬및부분응집상태를보여주는것으로오른쪽상단부분에물고기들이 2마리씩무리를짓거나머리부분이동일한지점으로정렬되는모습을볼수있다. [ 그림 3] 부분정렬및응집그림 4는물고기 10마리가무리를형성하는과정을 4 단계로나누어놓은것이다. 그림 4(a) 는시작후 30초가경과된상태의화면으로혼자움직이는물고기들이많다. 그림 4(b) 는시뮬레이션실행후 5분후의화면으로 2~3 마리들이무리를짓거나정렬하고있다. 그림 4(c) 는 10 분후의화면으로 10마리의물고기가일정한크기의무리를형성하고있다. 이후부터는물고기들이일정크기의무리를형성하여서보다큰무리를형성하는데에많은시간이소요되었다. 그림 4(d) 는물고기 10마리가모두무리를형성했을때의모습이다. 마리로무리를짓는횟수를백분율로표현한것이다. 시뮬레이션의경우전체실험시간동안 1마리로무리짓는비율이전체무리짓기비율의약 80% 를차지한다. 두경우모두 60% 이상의시간을무리를짓지않고 1마리씩독자적으로움직이고있다. 두경우모두시간이경과될수록물고기들의응집과정렬로인해물고기무리의크기가커짐을알수있다. 그러나, 시뮬레이션의경우에서 10마리모두무리로되는형성되는비율은약 43분정도에 10마리가모두응집되어서 6마리에서 9마리가무리로형성되는비율에비해상대적으로높고, 실세계에서 10 마리가모두무리로형성되는비율에비해높다. 이러한이유는시뮬레이션의경우실세계에서와어항의크기와유사한화면의크기설정과벽면에부딪혔을경우에부자연스럽게구현되는것등의한계를가지고있기때문이라고판단된다. 이경우를제외하면실세계에서의무리짓기와시뮬레이션의무리짓기형태는유사함을보인다. 이와같이실세계와시뮬레이션의무리짓기비율은대부분의경우에무리짓기변화정도가비슷하며변화형태또한유사하다. 이는구현된무리짓기를게임의무리짓기에응용하게되는경우실세계에서와비슷한형태의 NPC 무리짓기를게이머에게제공할수있음을보여준다. (a) 시작화면 (b) 5 분경과후화면 [ 그림 5] 시뮬레이션과실세계의무리짓기비교 4. 결론및향후연구방향 (c) 10분경과후상태 (d) 40분경과상태후 [ 그림 4] 무리짓기상태변화그림 5는실세계의무리짓기실험 [3] 과오우거엔진을이용하여무리짓기를구현한비교결과이다. 두실험모두 30초간격으로 60분간관찰하며실험환경은그림 3 과그림 4에서와동일하게설정한다. 가로축은무리짓기를형성하는물고기들의마리수이고, 세로축은각마리로구성되는무리짓기횟수를모두합한값에대해해당 본논문에서는물고기의무리짓기행동을설계하고오우거엔진을이용하여구현하였다. 그리고구현된결과를실세계의무리짓기와비교하였다. 실험결과, 실세계의무리짓기와시뮬레이션의무리짓기는유사함을보였다. 본논문의무리짓기알고리즘을게임의 NPC 무리짓기에적용하는경우게이머들에게실세계와비슷한무리짓기환경을제공하여게임의몰입을증가시킬수있을것으로판단된다. 추후에는 BL 크기와어항크기, 그리고물고기수등의다양한조건에서구현된무리짓기알고리즘에대한 5087

6 한국산학기술학회논문지제 11 권제 12 호, 2010 성능을평가할예정이다. 참고문헌 이면재 (Myoun-Jae Lee) [ 종신회원 ] [1] PETER H.WERGE, MARTIN WIKESKI, et al., "ANTIBIRDS PARASITIZE, FORAGING ARMY ANTS", Ecology, 86(3), pp , [2] I.D.Couzin and N.R.Franks,"Self-Organized lane formation and optimized traffic flow in army ants", Proceedings of the Royal Society of London, Series B. 270: , [3] D.J.HOARE, I.D. COUZIN, J.-G.J. GODIN& J. KRAUSE, "Context-dependent group size choice in fish", Elsevier Ltd. ANIMAL BEHAVIOUR, pp , [4] Iain D. Couzin1,2, Jens Krause, et al., Effective leadership and decision-making in animal groups on the move, Nature 433, pp , February [5] Alt, G., and King, K, "Intelligent Movement Animation for NPCs", AI Game Programming Wisdom 2, Charles River Media, [6] Steven Woodcock, 플로킹 : 집단행동을흉내내는간단한기법, Game Programming Gems 1, pp , [7] Steven Woodcock, 먹고먹히는플로킹 : 포식자와먹이, Game Programming Gems 2, 이 pp , [8] 유현지, 이면재, Ogre 엔진을이용한물고기떼시뮬레이션, 한국산학기술학회추계학술발표논문집, 제 10권, 제2호, pp , [9] 유현지, 박종호, 이면재, 물고기무리짓기구현, 한국산학기술학회춘계학술발표논문집제11권, 제1호, pp , < 관심분야 > 게임인공지능, 게임엔진 1992 년 2 월 : 홍익대학교전자계산학과졸업 ( 이학사 ) 1994 년 2 월 : 홍익대학교전자계산학과대학원졸업 ( 이학석사 ) 2009 년 3 월 ~ 현재 : 백석대학교정보통신학부교수 김경남 (Kyoung-Nam Kim) [ 정회원 ] < 관심분야 > 미디어아트, 게임아트 1994 년 2 월 : 홍익대학교미술대학회화과졸업 ( 학사 ) 1997 년 2 월 : 홍익대학교미술대학회화과졸업 ( 석사 ) 2008 년 ~ 현재 : 중앙대학교첨단영상대학원예술공학박사과정수료 유현지 (Hyun-Ji Yoo) [ 준회원 ] 2011 년 2 월 : 백석대학교정보통신학부멀티미디어전공졸업예정 < 관심분야 > 게임인공지능, 안드로이드프로그래밍 5088

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic

More information

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

(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

슬라이드 1 한국산업기술대학교 제 5 강스케일링및회전 이대현교수 학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space) SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z)

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 10 강광원 이대현교수 학습안내 학습목표 오우거엔진의광원을이용하여 3D 공갂에서광원을구현해본다. 학습내용 평면메쉬의생성방법광원의종류및구현방법 광원의종류 : 주변광원 주변광원 (Ambient Light) 동일한밝기의빛이장면안의모든물체의표면에서일정하게반사되는것. 공갂안에존재하는빛의평균값이론적인광원 광원의종류 : 지향광원 지향광원 (Directional

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 9 강캐릭터컨트롤러 이대현교수 학습안내 학습목표 씬노드의구성및회전방법을응용하여, 구면카메라및캐릭터컨트롤을구현해본다. 학습내용 구면카메라구현을위한씬노드구성및회전캐릭터컨트롤을위한씬노구구성및회전 카메라및캐릭터컨트롤구현목표 카메라컨트롤 WOW의카메라컨트롤 ( 구면카메라 ) 마우스를이용한좌우패닝, 상하피칭. 휠스크롤을이용한줌인및줌아웃. 캐릭터를중심으로회전됨.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

C++ Programming

C++ 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

(Microsoft PowerPoint - \301\24615\260\255 - \303\346\265\271\303\263\270\256)

(Microsoft PowerPoint - \301\24615\260\255 - \303\346\265\271\303\263\270\256) 게임엔진 제 15 강충돌처리 이대현교수 한국산업기술대학교게임공학과 학습목차 엔터티본구조의이해 콘솔입출력방법 본의위치좌표의획득 충돌오브젝트를이용한충돌처리기법 OgreOPCODE 를이용한충돌처리실습 본 (Bone) 뼈대애니메이션 (skeletal animation) 의기본구조. 위치와방향정보를가지고있는조인트. 본이여러개모여서 ( 트리구조 ) 하나의뼈대를이루게됨.

More information

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA> 게임엔진 제 7 강광원과그림자 이대현교수 한국산업기술대학교게임공학과 학습내용 광원의종류 평면메쉬의생성방법 광원의구현 그림자의종류와구현 광원의종류 : 주변광원 주변광원 (Ambient Light) 동일한밝기의빛이장면안의모든물체의표면에서일정하게반사되는것. 공간안에존재하는빛의평균값 이론적인광원 광원의종류 : 지향광원 지향광원 (Directional Light) 한방향으로무한히뻗어나가는빛.

More information

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월 지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., 2004 5 2009 12 KOSPI200.,. * 2009. 지능정보연구제 16 권제 1 호 2010 년 3 월 김선웅 안현철 社 1), 28 1, 2009, 4. 1. 지능정보연구제 16 권제 1 호 2010 년 3 월 Support

More information

유니티 변수-함수.key

유니티 변수-함수.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

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 7 강카메라와뷰포트 이대현교수 학습안내 학습목표 오우거엔짂의입력처리방식을종합적으로이해한다. 오우거엔짂의카메라의활용방법및뷰포트의활용방법을이해하고다양한방식으로게임화면을구성해본다. 학습내용 오우거엔짂의입력처리방식. 키입력밎마우스입력리스너인터페이스. 카메라의이동및회전. 시야절두체컬링의이해. 뷰포트를이용한 PIP의구현. 오우거엔진의입력처리방식 무버퍼입력

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345]) 클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

PowerPoint Presentation

PowerPoint 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 information

Microsoft PowerPoint - Java7.pptx

Microsoft 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 information

(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372)

(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372) 게임엔진 제 8 강광원과재질 이대현교수 한국산업기술대학교게임공학과 학습목차 조명모델 광원의색상설정 재질 분산성분의이해 분산재질의구현 경반사성분의이해 경반사재질의구현 조명 (Illumination) 모델 조명모델 광원으로부터공간상의점들까지의조도를계산하는방법. 직접조명과전역조명 직접조명 (direct illumination) 모델 물체표면의점들이장면내의모든광원들로부터직접적으로받는빛만을고려.

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관 2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관 2015 개정교육과정에따른정보과평가기준개발연구 연구협력진 머리말 연구요약 차례 Ⅰ 서론 1 Ⅱ 평가준거성취기준, 평가기준, 성취수준, 예시평가도구개발방향 7 Ⅲ 정보과평가준거성취기준, 평가기준, 성취수준, 예시평가도구의개발 25 Ⅳ 정보과평가준거성취기준, 평가기준, 성취수준, 예시평가도구의활용방안

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

More information

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract 2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract - 31 - 소스코드유사도측정도구의성능에관한비교연구 1. 서론 1) Revulytics, Top 20 Countries for Software Piracy and Licence Misuse (2017), March 21, 2017. www.revulytics.com/blog/top-20-countries-software

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

<4D F736F F F696E74202D20C1A63134B0AD202D20BBE7BFF8BCF6BFCD20C8B8C0FC>

<4D F736F F F696E74202D20C1A63134B0AD202D20BBE7BFF8BCF6BFCD20C8B8C0FC> 게임엔진 제 14 강사원수와회전 이대현교수 한국산업기술대학교게임공학과 학습목차 오일러회전의개념과특성의이해 사원수의개념 사원수를이용한회전실습 Slerp 구면보간 닌자의부드러운회전실습 오일러 (Euler) 회전 오일러각도 (Euler Angles) 원리를이용한회전 오일러각도 : 3 차원공간에서물체가취할수있는방향을나타내는데사용되는세개의각도값의조합 18 세기수학자오일러의착안점

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft 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 information

09구자용(489~500)

09구자용(489~500) The Study on the Grid Size Regarding Spatial Interpolation for Local Climate Maps* Cha Yong Ku** Young Ho Shin*** Jae-Won Lee**** Hee-Soo Kim*****.,...,,,, Abstract : Recent global warming and abnormal

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim(); 인터페이스적용 오리객체설계하기 ) 청둥오리, 물오리를설계하세요. 1 단계 : 필요한객체설계 class 청둥오리 { class 물오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim(); mallardduck.fly(); mallardduck.quack(); redheadduck.swim();

More information

No Slide Title

No Slide Title 예외처리 이충기 명지대학교컴퓨터공학과 예외필요성 오류처리지금까지 : 오류처리를거의하지않았다. 일이의도한대로잘될것이라고가정했다. 주먹구구식방법 : 프로그래머는컴파일오류를찾아서수정하기위해서시험하고오류수정을해야한다. 컴파일러는실행오류의문제를해결하지못한다 ( 예 : 부정확한값이나상태 ). 프로그래머는실행오류가있더라도프로그램이우아하게돌아가야한다는것을보장해야한다. 우아하게

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.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 학습목표 포인터를 사용하는 다양한 방법에

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf 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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 예외처리 배효철 th1g@nate.com 1 목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생 예외와예외클래스 구문오류 예외와예외클래스 구문오류가없는데실행시오류가발생하는경우 예외와예외클래스 import java.util.scanner; public class ExceptionExample1

More information

À±½Â¿í Ãâ·Â

À±½Â¿í Ãâ·Â Representation, Encoding and Intermediate View Interpolation Methods for Multi-view Video Using Layered Depth Images The multi-view video is a collection of multiple videos, capturing the same scene at

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 유니티와아두이노를활용한 VR 컨트롤러개발 Part 06 헬로앱스코딩교육 김영준 공학박사, 목원대학교겸임교수前 Microsoft 수석연구원 splduino@gmail.com http://www.helloapps.co.kr 키보드로물체생성하기 키보드로물체생성하기 public GameObject CubeObject; public GameObject MyCamera;

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft 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 information

제목

제목 Development Technology Seminar 작 성 자 : 고형호 이 메 일 : hyungho.ko@gmail.com 최초작성일 : 2007.01.19 최종작성일 : 2007.02.05 버 전 : 01.05 홈 피 : www.innosigma.com Goal Exception Handling 1. SEH vs. CEH Exception Handling

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

Microsoft PowerPoint 장강의노트.ppt

Microsoft PowerPoint 장강의노트.ppt 클래스와객체 클래스와객체 객체 : 우리주변의어떤대상의모델 - 예 : 사람, 차, TV, 개 객체 = 상태 (state) + 행동 (behavior) - 예 : 개의상태 - 종자, 이름, 색개의행동 - 짖다, 가져오다 상태는변수로행동은메소드로나타냄 객체는클래스에의해정의된다. 클래스는객체가생성되는틀혹은청사진이다. 2 예 : 클래스와객체 질문 : 클래스와객체의다른예는?

More information

04 Çмú_±â¼ú±â»ç

04 Çмú_±â¼ú±â»ç 42 s p x f p (x) f (x) VOL. 46 NO. 12 2013. 12 43 p j (x) r j n c f max f min v max, j j c j (x) j f (x) v j (x) f (x) v(x) f d (x) f (x) f (x) v(x) v(x) r f 44 r f X(x) Y (x) (x, y) (x, y) f (x, y) VOL.

More information

자바 웹 프로그래밍

자바 웹 프로그래밍 Chapter 00. 강의소개 Chapter 01. Mobile Application Chapter 02. 기본프로그래밍 강의내용최근큰인기를끌고있는 Mobile Application 에관한소개및실제이를위한개발방법을소개하며, Application 개발에관한프로그래밍을간략히진행 강의목표 - 프로그래밍의기본흐름이해 - 창의 SW 설계에서프로그래밍을이용한프로젝트진행에도움을주기위함

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

<4D F736F F F696E74202D20C1A63137B0AD202D20C1F6C7FCC3E6B5B9C3B3B8AE>

<4D F736F F F696E74202D20C1A63137B0AD202D20C1F6C7FCC3E6B5B9C3B3B8AE> 게임엔진 제 17 강지형충돌처리 이대현교수 한국산업기술대학교게임공학과 학습목차 광선을이용한지형충돌검사와이를이용한지형위의카메라이동구현. 간단한 world editor 의구현 닌자및로봇을지형위에배치, 이동및선택 쿼리마스크 기능 사용법 다중쿼리마스크의사용방법 실습 CamearTerrainMove 지형위를이동하는카메라 구현기능 카메라를이동할때, 지형을통과하는일이일어나지않음.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

(Microsoft Word - \301\337\260\243\260\355\273\347.docx) 내장형시스템공학 (NH466) 중간고사 학번 : 이름 : 문제 배점 점수 1 20 2 20 3 20 4 20 5 10 6 10 7 15 8 20 9 15 합계 150 1. (20 점 ) 다음용어에대해서설명하시오. (1) 정보은닉 (Information Hiding) (2) 캡슐화 (Encapsulation) (3) 오버로딩 (Overloading) (4) 생성자

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

RVC Robot Vaccum Cleaner

RVC Robot Vaccum Cleaner RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while

More information

Microsoft PowerPoint - additional08.ppt [호환 모드]

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770> Journal of the Korea Academia-Industrial cooperation Society Vol. 13, No. 2 pp. 866-871, 2012 http://dx.doi.org/10.5762/kais.2012.13.2.866 증강현실을 이용한 아동교육프로그램 모델제안 권미란 1*, 김정일 2 1 나사렛대학교 아동학과, 2 한세대학교 e-비즈니스학과

More information

Microsoft PowerPoint PythonGUI-sprite

Microsoft PowerPoint PythonGUI-sprite (Sprite) 순천향대학교컴퓨터공학과 이상정 순천향대학교컴퓨터공학과 1 학습내용 소개 클래스 그룹클래스 충돌 블록수집게임예 게임레벨증가및점수표시 이동 순천향대학교컴퓨터공학과 2 소개 (sprite) 큰그래픽장면의부분으로사용되는단일 2차원이미지 => 쪽화면 게임의장면에서서로상호작용 ( 충돌등 ) 하는물체 => 캐릭터, 아바타 파이게임에서는일반적으로클래스로구현된객체

More information

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12),

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12), THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. 2016 Dec.; 27(12), 1036 1043. http://dx.doi.org/10.5515/kjkiees.2016.27.12.1036 ISSN 1226-3133 (Print) ISSN 2288-226X (Online)

More information

PowerPoint Template

PowerPoint Template 10. 예외처리 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 10.1 개요 10.2 C++ 의예외처리 10.3 Java 의예외처리 10.4 Ada 의예외처리 10.1 예외처리의개요 (1) 3 예외 (exception) 오버플로나언더플로, 0 으로나누기, 배열첨자범위이탈오류와같이프로그램실행중에비정상적으로발생하는사건 예외처리 (exception handling)

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

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 information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft 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 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[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

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

Semantic Consistency in Information Exchange

Semantic Consistency in Information Exchange 제 6 장제어 (Control) 6.1 구조적프로그래밍 (Structured Programming) 6.2 예외 (Exceptions) Reading Chap. 7 숙대창병모 1 6.1 구조적프로그래밍 숙대창병모 2 Fortran 제어구조 10 IF (X.GT. 0.000001) GO TO 20 11 X = -X IF (X.LT. 0.000001) GO TO

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Team 1 201611293 전다윤 201311287 엄현식 201311318 최정헌 01. 문서수정 02. System Test Review 03. Static Test Review 04. 소감 1 문서수정 문서수정 수정 System Test 문서 + 전문서에없던수정사항 수정 System Test 문서 문서수정 소프트웨어검증팀의문서대로수정한사항들 1008

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(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 information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ 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 information

제8장 자바 GUI 프로그래밍 II

제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

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft 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

Frama-C/JESSIS 사용법 소개

Frama-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

<5B313132385D32303039B3E220C1A634B1C720C1A632C8A320B3EDB9AEC1F628C3D6C1BE292E687770>

<5B313132385D32303039B3E220C1A634B1C720C1A632C8A320B3EDB9AEC1F628C3D6C1BE292E687770> 디지털 영상에서의 자막추출을 이용한 자막 특성 분석에 관한 연구 이세열 * 요약 본 연구는 방송 프로그램 제작에 있어서 중요한 역할을 담당하고 있는 영상 자막의 특성과 영상 커 뮤니케이션 기능적인 관점에서 나타나고 있는 현상을 살펴본다. 다양한 방송 프로그램에서 활용되고 있는 디지털 영상 자막의 기능은 단순하게 간략한 정보를 전달하는 기능적인 역할을 수행하였다.

More information