본문 바로가기
개발/Unity

유니티 - 3차원 세 점의 좌표로 삼각형의 넓이 구하기

by 피로물든딸기 2022. 5. 11.
반응형

Unity 전체 링크

 

참고

- 세 점을 지나는 평면 구하기

- 다각형 좌표의 시계 방향 판단하기, 다각형의 넓이 구하기

 

세 점의 좌표 Vector3 dot1, dot2, dot3가 주어질 때, 

 

Vector3 a = dot2 - dot1;

Vector3 b = dot3 - dot1;

 

이라고 하자. 즉, 

이다.

 

이때, 삼각형의 넓이 Area는 아래와 같다.

 

유니티의 함수로 구현하면 아래와 같이 구현할 수 있다.

    float getAreaOfTriangle(Vector3 dot1, Vector3 dot2, Vector3 dot3)
    {
        Vector3 a = dot2 - dot1;
        Vector3 b = dot3 - dot1;

        float s
            = (a.y * b.z - b.y * a.z) * (a.y * b.z - b.y * a.z)
            + (b.x * a.z - a.x * b.z) * (b.x * a.z - a.x * b.z)
            + (a.x * b.y - b.x * a.y) * (a.x * b.y - b.x * a.y);

        return Mathf.Sqrt(s) / 2.0f;
    }

 

이 공식은 Vector a와 b의 외적의 크기의 제곱근이다. 

따라서 간결하게 아래와 같이 표현할 수 있다.

    float getAreaOfTriangle(Vector3 dot1, Vector3 dot2, Vector3 dot3)
    {
        Vector3 a = dot2 - dot1;
        Vector3 b = dot3 - dot1;
        Vector3 cross = Vector3.Cross(a, b);

        return cross.magnitude / 2.0f;
    }

수식을 입력하는 링크는 아래를 참고하자.

http://www.sciweavers.org/free-online-latex-equation-editor

 

( a_{x} ,  a_{y} , a_{z} ) = ( dot2_{x} - dot1_{x}, dot2_{y} - dot1_{y}, dot2_{z} - dot1_{z} ) 

( b_{x} ,  b_{y} , b_{z} ) = ( dot3_{x} - dot1_{x}, dot3_{y} - dot1_{y}, dot3_{z} - dot1_{z} ) 

Area =  \frac{1}{2}  \sqrt{ ( a_{y} b_{z} - b_{y} a_{z} )^{2} + ( b_{x} a_{z} - a_{x} b_{z} )^{2} + ( a_{x} b_{y} - b_{x} a_{y} )^{2} } 

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

 

반응형

댓글