Algorithm with C/Math
-
Unity를 활용한 벡터의 내적 - 탱크가 포를 쏠 시에 뒤로 밀림 구현Algorithm with C/Math 2021. 4. 9. 08:34
개발 환경은 Unity 이다. 아래의 벡터의 내적의 내용을 가지고 활용을 해보자. designatedroom87.tistory.com/434 벡터의 내적(Dot product) 위의 [그림 1]과 같이 두개의 벡터가 있으며, 그 사이각이 있다. 저 사이의 각을 구하고 싶을 때, 벡터의 내적을 이용한다. 벡터의 내적식은 다음과 같다. 그리고 벡터a와 벡터b는 다음과 같이 쓸 designatedroom87.tistory.com 포탄 발사가 되면 아래의 Shot 함수가 호출 된다. 유니티에서는 벡터의 내적을 구하는 함수를 제공해주므로 이를 활용하면 된다. 가만히 있는 상태( 탱크의 이동 속도는 0 )에서 총구의 방향과 바퀴의 방향이 서로 일치하면 탱크는 뒤로 밀리므로 이동 속도는 기존의 이동 속도 보다 줄어든..
-
포물선(이차함수)을 활용해서 원하는 물체에 미사일 날리기 - Cocos2D 활용Algorithm with C/Math 2021. 4. 7. 09:13
개발환경 : cocos2d-1.0.0-x-0.9.0 와 Visual Studio 2008 WinAPI와 Cocos2D는 좌표계가 서로 다르다. Cocos2D에서는 좌측하단이 원점이다. 즉, 우리가 보편적으로 사용하는 좌표계와 같다. 이차 함수에 대한 내용은 아래의 글을 읽어 보자. designatedroom87.tistory.com/130?category=887656 API를 활용한 이차함수를 이용해 점프 기능 만들기 a가 양수냐, 음수냐에 따라서 이차함수의 그래프의 개형이 달라진다. 그림 출처 : terms.naver.com/entry.nhn?docId=945470&cid=47324&categoryId=47324 0이면 아래로 볼록 a < 0이면 위로 볼록 ⑷ |a|가 클수록.. designatedro..
-
포물선(벡터)을 이용한 미사일 날리기 - Cocos2D 활용Algorithm with C/Math 2021. 4. 7. 07:19
아래의 글과 연관성이 많으므로 아래의 글을 먼저 읽고 오는 것을 추천함. designatedroom87.tistory.com/429 벡터를 활용한 미사일을 날리기 - Cocos2D를 활용 개발 환경은 cocos2d-1.0.0-x-0.9.0 와 Visual Studio 2008 cocos2d는 Win API와는 달리, 좌표계가 좌측하단이 원점이다. 우리가 보편적으로 쓰는 좌표계와 같다. 물체를 이동시킬 때는 이동 방향 벡터를 활용해 designatedroom87.tistory.com Cocos2D에서는 좌측하단이 원점이다. 우선 우리가 여기에서 만들어 볼 것을 영상으로 먼저 보자. 프로그램 실행영상 아래는 미사일의 이동 방향을 나타낸 것이다. 아래의 그림은 위의 내용을 좀 더 자세히 그린 그림이다. v_0..
-
벡터를 활용한 미사일을 날리기 - Cocos2D를 활용Algorithm with C/Math 2021. 4. 6. 19:39
개발 환경은 cocos2d-1.0.0-x-0.9.0 와 Visual Studio 2008 cocos2d는 Win API와는 달리, 좌표계가 좌측하단이 원점이다. 우리가 보편적으로 쓰는 좌표계와 같다. 물체를 이동시킬 때는 이동 방향 벡터를 활용해서 처리할 수 있다. 즉, 물체의 위치와 이동 방향 벡터의 단위 벡터의 합으로 물체의 위치를 이동시킬 수 있다. 이동 방향 벡터는 아래와 같이 구할 수 있다. 그리고 이 이동 방향 벡터는 통상적으로 단위 벡터화를 하도록 한다. 위의 이동 방향 벡터를 단위 벡터화를 하면 아래와 같은 그림이 된다. 그리고, 이 미사일을 타겟의 방향으로 회전시킬 수 있는데, 이는 이 이동 방향 벡터를 통해 처리할 수 있다. 그리고 물체의 이동은 기존의 미사일 위치에 이 이동 벡터에 적..
-
보간 회전 - cocos2D 활용Algorithm with C/Math 2021. 4. 6. 11:21
개발환경 : cocos2d-1.0.0-x-0.9.0 와 Visual Studio 2008 Win API와 cocos2d는 좌표계가 서로 다르다. API는 좌측상단이 원점인데, cocos2d는 왼쪽하단이 원점이다. 즉, cocos2d의 좌표계가 우리가 보편적으로 많이 사용하는 좌표계이다. 아래의 영상을 보도록 하자. 우리가 여기에서 구현할 내용이다. 파란색 도형을 미사일로, 붉은 원을 퍽(아이스하키 공)이라고 가정하자. 우선은 마시일을 중심으로 퍽을 회전 시켜보도록 하자. 쉽게 설명하면, 퍽은 미사일을 중심으로 공전을 한다. 를 복습해보자. 자세한 내용은 아래를 참고하자. designatedroom87.tistory.com/101?category=887656 API를 활용해서 삼각비를 통한 각도 구하기 직..
-
평면의 방정식을 활용한 마인크래프트 블록 붙이기(Unity 활용)Algorithm with C/Math 2020. 11. 30. 17:24
영상을 먼저 보자. 마인크래프트에서 벽돌을 붙이는 작업을 해봤을 것이다. 이 벽돌 붙이는 작업을 평면의 방정식을 활용해서 쉽게 구현할 수 있다. 유니티 엔진에서는 레이 캐스트를 활용해서 충돌한 큐브의 정보를 얻어와서 그 큐브에서 충돌한 표면(평면)으로부터 법선 벡터를 아주 쉽게 구할 수 있다. 캐릭터는 단순히 큐브로 표현을 한다. 그리고 캐릭터의 걔층구조는 카메라이다. 아래는 플레이어의 인스펙터이다. 카메라의 설정은 아래와 같이 default로 설정되어 있다. 그리고 아래와 같이 Cube를 Prefabs한다. 이 Cube가 인 게임에서 붙여질 블록이다. 그리고 인 게임에서 설치해둔 기존의 블록에 Tag를 하나 만들어서 BLOCK이라고 세팅하자. 아래의 스크립트는 플레이어에 붙이면 된다. 아래의 문장이 핵..
-
세 점을 입력받아 삼각형의 성립 조건 구하기Algorithm with C/Math 2020. 10. 14. 08:46
문제 삼각형의 세 점의 좌표를 입력 받는다. 삼각형이 만들어질 수 있는지 없는지를 판단한다. 문제의 힌트 삼각형은 3개의 점으로 이루어져있다. 그리고 점이 3개이기 때문에 각 점과 점을 이을 수 있다. 즉, 3개의 직선이 만들어진다. 그런데 3개의 직선은 필요가 없다. 그 이유는 삼각형의 세 점을 A,B,C라 하고 점A를 기준점이라 생각해보자. 선분 AB와 AC이 이렇게 두 직선만 가지고 충분히 세 점이 삼각형을 이루는지 알아낼 수 있다. 두 선분이 만약 일치한다면 삼각형이 성립이 되지 않는다. 그리고, 벡터의 외적을 통해서도 프로그래밍 할 수 있다. 구현 여기서, 점을 표현하기 위해서 다음과 같은 구조체를 필요로 하자. 그리고, 직선에 대한 정보를 담을 구조체가 필요로 한다. 직선에서 중요한 정보는 기..