2017-03-10 21 views
0

불규칙한 3D 모양의 표면 (즉, 돌)을 삼각형으로 생각하십시오.삼각형 표면의 3D 중심부

나는이 :

  • 정점을. x,y,z 각 점의 좌표 (pointCloud)입니다.
  • 얼굴. 각 삼각형의 정점에 대한 정보가 들어 있습니다. 주어진 정보로 전체 모양

의 각 삼각형의

  • 지역
  • 볼륨, 어떻게 전체 삼각면의 무게 중심의 좌표를 정확히 찾아 낼 수 있을까요?

  • +0

    내 생각에 모든 삼각형의 중심을 얻은 다음 평균값이 작동하지만 더 많은 생각을해야합니다. –

    답변

    1

    의 중 도심 을 계산할 수 있습니다. 각 삼각형 질량으로 가중치 된 각 삼각형의 중심을 누적 한 다음 총 질량으로 나눕니다. 알고리즘에서이 제공 :

    mg : vector3d <- (0,0,0) 
    m : real <- 0 
    For each triangle t 
        m <- m + area(t) 
        mg <- mg + area(t) * centroid(t) 
    End for 
    Surfacecentroid <- mg/m 
    

    여기서

    centroid(t) = 1/3 (p1+p2+p3) 
    area(t) = 1/2 * || cross(p2-p1, p3-p1) || 
    
    표면
    으로 둘러싸인 볼륨의 중심이 무엇인지 당신이 원하는, 알고리즘이 다른 경우

    지금, 당신은을 분해 할 필요가 다음과 같이 사면체로 볼륨과 사면체의 무게 중심을 축적 :

    mg : vector3d <- (0,0,0) 
    m : real <- 0 
    For each triangle t = (p1,p2,p3) 
        m <- m + signed_volume(O,p1,p2,p3) 
        mg <- mg + signed_volume(O,p1,p2,p3) * centroid(O,p1,p2,p3) 
    End for 
    volumeCentroid <- (1/m) * mg 
    

    ,
    O=(0,0,0) and 
        centroid(p1,p2,p3,p4) = 1/4 (p1+p2+p3+p4) 
        signed_volume(p1,p2,p3,p4) = 1/6 * dot(p2-p1, cross(p3-p1, p4-p1)) 
    

    표면 외부의 사면체 부분의 부호가있는 볼륨이 정확히 취소되기 때문에 수식이 작동합니다 (수학에 만족하면 알고리즘에 대한 또 다른 생각은 볼륨 계산).

    +0

    답변 해 주셔서 감사합니다. 가중치 하나는 잘 작동합니다. 볼륨 : - 'p4'는 무엇입니까? "O"또는 어느 것이 "O"입니까? -'O = (0,0,0)'이 항상 상수입니까? - '예'인 경우 '0'에서 다른 점을 빼는 이유는 무엇입니까? - 여기에 '중심 기능'이란 무엇입니까? – isifzade

    +0

    (p1, p2, p3, p4)는 사면체의 네 꼭지점을 나타냅니다. 이 공식은 사인 된 부피와 그것들의 중심 (quadhedron = 1/4 (p1 + p2 + p3 + p4)의 중심)을 누적합니다 .O에 대해서는 임의의 점을 취할 수 있으므로 분명히 O = , 0) (계산을 더 간단하게 만든다). – BrunoLevy