Tìm trung tâm hình học của vật thể?


37

Cho một tập hợp các điểm 2D hoặc 3D:

Làm thế nào để tìm trung tâm hình học của một đối tượng?

Theo hình dưới đây, tâm hình học khác với tâm khối lượng nếu nó được tính ở dạng đơn giản nhất, nghĩa là mật độ khối đồng nhất. Vấn đề xuất hiện, thực sự, trong tính toán của những người. Thông thường, một cách tiếp cận là tọa độ trung bình X và tọa độ Y riêng biệt, tìm vị trí trung bình cho các điểm đã cho (ở đây trong 2D). Điều này có thể được sử dụng như centroid cho tập hợp các điểm đại diện cho một đối tượng. Như được hiển thị, do có thêm đỉnh dọc theo cạnh dưới, đối với một hình chữ nhật đơn giản, trọng tâm kết quả là (0,5,0,4) trong khi câu trả lời đúng là (0,5,0,5) .
Lưu ý rằng ví dụ đưa ra là quá đơn giản. Tuy nhiên, vấn đề quan tâm là đối với các hình dạng phức tạp trong 2D và các đối tượng trong 3D chỉ có tọa độ các đỉnh.
BTW, một cách tính toán hiệu quả được quan tâm.

Chỉ cần đề cập rằng tôi đã kiểm tra một số liên kết web như Wikipedia, tuy nhiên vấn đề hiện tại của tôi là có một nhóm các điểm 2D và 3D muốn tìm một điểm làm đại diện cho những điểm đó. Do đó, centroid trở nên quan tâm. Các điểm được đưa ra mà không có bất kỳ thông tin tô pô. Bạn có thể coi chúng là đám mây điểm. Trình diễn ở đây cung cấp để làm rõ rằng việc lấy trung bình các tọa độ thường được biết đến (ví dụ: Hỏi & Đáp về Stack Overflow này ) có thể không chính xác như trong ví dụ.

nhập mô tả hình ảnh ở đây

Dưới đây là một số triển khai để so sánh:

  • aa = câu trả lời được chấp nhận dưới đây
  • chull = lồi-vỏ của các điểm tức là đa giác vàng
  • cent = centroid được đề xuất trong Wikipedia và thảo luận trong aa là centroid đa giác
  • centl = centroid của polyline như được giải thích trong aa

Trực quan, centltrông đại diện tốt hơn cho hình học được đưa ra so với cent. Hai người khác có vẻ đầy hứa hẹn ở đây nhưng thường thì họ quá thiên vị nếu sự phân tán các điểm không đồng nhất vì đây là trường hợp thông thường.
Và cũng xem xét rằng mặc dù vỏ lồi làm cho vấn đề trở nên đơn giản hơn một cách hợp lý tuy nhiên nó có thể tạo ra các cạnh quá dài và quá ngắn mà không có bất kỳ vị trí đối xứng nào trong không gian, nghĩa là, nhận thức là cần thiết nếu bạn thực hiện tính trung bình đơn giản (nghĩa là không có trọng số) cho cả hai trường hợp : toàn bộ các điểm (màu xanh lá cây) hoặc các đỉnh đa giác lồi (màu xanh).

nhập mô tả hình ảnh ở đây

Một ứng dụng có thể được tìm thấy trong Tìm hình chữ nhật diện tích tối thiểu cho các điểm đã cho? .


Điều này sẽ làm việc? Tìm trọng tâm của một đa giác? (StackOverflow)
blah238

3
Tôi không chắc câu hỏi của bạn là gì. Trung tâm hình học hoặc (thường là trung tâm) có thể khác với barycenter (trung tâm khối lượng). Đây là một thực tế nổi tiếng. Ngoài ra có nhiều cách khác nhau để tính toán tâm của hình học. Xem: en.wikipedia.org/wiki/Trigin_center , en.wikipedia.org/wiki/Encyclopedia_of_Trigin_Centers & fac Khoa.evansville.edu/ck6/encyclopedia/ETC.html .
Devdatta Tengshe

1
Cập nhật lại: khi không có cấu trúc liên kết, đám mây điểm chỉ là đám mây điểm. Nhân tiện, hình vuông của bạn không áp dụng (và 'centroid' của bạn (0,5,0,4) dường như không phát sinh từ bất kỳ công thức tiêu chuẩn nào, bằng cách này: đối xứng lập luận mạnh mẽ cho bất kỳ điểm trung tâm nào của hình vuông trùng với (0,5 , 0,5), bất kể nó được định nghĩa như thế nào). Để biết một số ý tưởng về việc tìm vị trí đại diện hoặc trung tâm cho các đám mây điểm ở hai chiều trở lên, vui lòng xem stats.stackexchange.com/questions/1927 .
whuber

1
@ Nhà phát triển, tôi thấy điểm của bạn bây giờ, điểm thứ 5 của bạn ở dưới cùng của "hình chữ nhật" (thực ra là một đa giác) tạo ra một phép tính trung bình đơn giản của các tọa độ đỉnh mang lại một barycenter khác với đa giác như câu trả lời của người đưa ra.
blah238

1
Aha! Tôi đã hoàn toàn bỏ lỡ đỉnh thứ năm đó, mặc dù tôi đã tìm kiếm một số thứ như vậy. Để giúp độc giả tương lai, tôi đã thực hiện một chỉnh sửa nhỏ trong câu hỏi để chỉ ra điều này. Điều này thực sự không có được trái tim của vấn đề, quá: chèn hoặc xóa các đỉnh dọc theo các cạnh sẽ thay đổi như thế nào nhiều {dòng, gon} được đại diện , nhưng nó không nên thay đổi tính toán của các thuộc tính hình học bẩm sinh của mình. Đó là lý do tại sao barycenter của các đỉnh có thể có mối quan hệ gần như tùy ý với các baryent của một đa giác hoặc ranh giới của nó.
whuber

Câu trả lời:


44

Mỗi đa giác có, ở mức tối thiểu, bốn "trung tâm" riêng biệt:

  • Barycenter của đỉnh của nó.

  • Barycenter của các cạnh của nó.

  • Barycenter của nó như là một đa giác.

  • Một "trung tâm" dành riêng cho GIS hữu ích cho ghi nhãn (thường được tính bằng các phương thức độc quyền không có giấy tờ).

(Chúng có thể vô tình trùng khớp trong các trường hợp đặc biệt, nhưng đối với đa giác "chung" thì chúng là các điểm khác biệt.)

Một "barycenter" nói chung là một "trung tâm của khối lượng." Ba loại khác nhau về vị trí của khối lượng được đặt ở vị trí: nó hoàn toàn nằm trên các đỉnh, trải đều trên các cạnh hoặc trải đều trên đa giác.

Các phương pháp đơn giản tồn tại để tính toán cả ba barycent. Một cách tiếp cận dựa trên thực tế cơ bản là barycenter của sự kết hợp rời rạc của hai quần chúng là trung bình toàn khối lượng của các baryenters. Từ đó, chúng ta dễ dàng có được những điều sau đây:

  1. Barycenter của hai đỉnh (có trọng số bằng nhau) là trung bình của chúng. Điều này có được bằng cách lấy trung bình tọa độ của chúng một cách riêng biệt. Về mặt hình học, nó là trung điểm của đoạn thẳng nối hai đỉnh.

  2. Theo cách tự nhiên, barycenter của n đỉnh (có trọng số bằng nhau) có được bằng cách lấy trung bình các tọa độ của chúng một cách riêng biệt.

  3. Barycenter của một đoạn đường là trung điểm của nó. (Điều này là rõ ràng bởi tính đối xứng.)

  4. Barycenter của một polyline có được bằng cách tìm các điểm giữa của mỗi đoạn đường và sau đó hình thành trung bình có trọng số của chúng bằng cách sử dụng độ dài của đoạn làm trọng số.

    Ví dụ, hãy xem xét hình dạng "L" được mô tả bởi các điểm (0,0), (6,0), (6,12). Có hai đoạn: một đoạn dài 6 có điểm giữa tại ((0 + 0) / 2, (0 + 6) / 2) = (3.0) và đoạn khác có độ dài 12 với điểm giữa tại ((6 + 6) / 2, (0 + 12) / 2) = (6,6). Do đó tọa độ trung bình có trọng số chiều dài của chúng là (x, y) với

    x = (6*3 + 12*6) / (6+12) = 5,  y = (6*0 + 12*6) / (6+12) = 4.
    

    Điều này khác với barycenter của ba đỉnh, đó là ((0 + 6 + 6) / 3, (0 + 0 + 12) / 3) = (4,4).

    ( Chỉnh sửa Như một ví dụ khác, hãy xem xét hình trong câu hỏi, mặc dù hình vuông, được biểu diễn dưới dạng hình ngũ giác được xác định bởi chuỗi các điểm (0,0), (1 / 2,0), (1,0), (1,1), (0,1). Năm cạnh có độ dài 1/2, 1/2, 1, 1, 1 và trung điểm (1 / 4.0), (3 / 4.0), (1 , 1/2), (1 / 2.1) và (0,1 / 2), tương ứng. Trung bình trọng số của chúng do đó bằng

    [(1/2)*(1/4, 0) + (1/2)*(3/4, 0) + (1)*(1, 1/2) + (1)*(1/2, 1) + (1)*(0, 1/2)] / (1/2+1/2+1+1+1)
    = (2/4, 2/4) = (0.5, 0.5)
    

    như người ta hy vọng, mặc dù chỉ số barycenter của các đỉnh (được tính như trong # 2 ở trên) là (0,5, 0,4).)

  5. Barycenter của một đa giác có thể thu được bằng cách tam giác để phân hủy nó thành hình tam giác. Barycenter của một tam giác-qua-đa giác trùng với barycenter của các đỉnh của nó. Trung bình trọng số khu vực của các barycent này là barycenter của đa giác. Các khu vực tam giác dễ dàng được tính toán theo tọa độ đỉnh của chúng (ví dụ, về mặt sản phẩm hình nêm của hai trong số các cạnh). Để biết minh họa về các tính toán khu vực như vậy, bao gồm cách khai thác các khu vực đã ký (tích cực hoặc tiêu cực), hãy xem phần trên "Khu vực" tại trang ghi chú khóa học (cũ) của tôi .

    ( Chỉnh sửa Hãy xem xét đa giác được mô tả trong câu hỏi chẳng hạn. Chúng ta có thể tam giác nó với các hình tam giác ((0,0), (1 / 2,0), (0,1)) ở bên trái, ((0,1), (1 / 2,0), (1,1)) ở giữa và ((1,1), (1,0), (1 / 2,0)) ở bên phải. Diện tích của chúng là 1/4 , 1/2, 1/4 tương ứng và các giá trị nhị phân của chúng - thu được bằng cách lấy trung bình các đỉnh của chúng - là (1 / 6,1 / 3), (1 / 2,2 / 3) và (5 / 6,1 / 3), tương ứng. Trung bình trọng số diện tích của các baryent này bằng

    [(1/4)*(1/6,1/3) + (1/2)*(1/2,2/3) + (1/4)*(5/6,1/3)] / (1/4 + 1/2 + 1/4)
    = (12/24, 6/12)
    = (0.5, 0.5)
    

    như vậy, mặc dù có sự hiện diện của đỉnh thứ năm dọc theo cạnh dưới cùng.)

Rõ ràng là mỗi phương pháp này đều hiệu quả : nó chỉ cần một lần vượt qua biểu diễn "spaghetti" của đa giác, sử dụng thời gian không đổi (khá ít) ở mỗi bước. Lưu ý rằng trong tất cả các trường hợp ngoại trừ đỉnh đầu tiên (của các đỉnh thuần túy), cần nhiều thông tin hơn chỉ là một danh sách các tọa độ đỉnh: bạn cũng cần biết cấu trúc liên kết của hình. Trong ví dụ "L", chúng ta cần biết rằng (0,0) đã được kết nối với (6.0) chứ không phải (6,12).

Đây là tất cả các khái niệm Euclide. Chúng có thể được mở rộng đến hình cầu (hoặc ellipsoid) theo nhiều cách. Một người đơn giản xem các tính năng như một phức hợp đơn giản trong ba chiều (Euclide), tính toán barycenter thích hợp, và sau đó chiếu nó ra ngoài từ trung tâm của ellipsoid trở lại bề mặt. Điều này đòi hỏi không có khái niệm hoặc công thức mới; bạn chỉ phải làm việc với tọa độ thứ ba (z) ngoài hai tọa độ đầu tiên. (Các khu vực vẫn được tìm thấy bằng cách sử dụng chiều dài của các sản phẩm nêm.)

Một khái quát khác nhận ra rằng số liệu Euclide - căn bậc hai của một tổng bình phương, theo Pythagoras - có thể được thay đổi thành các số liệu Lp khác cho p> = 1: bạn lấy căn bậc p của tổng lũy ​​thừa pth. Việc tìm kiếm "barycenters" thích hợp không còn đơn giản như vậy nữa, bởi vì các thuộc tính phụ gia đẹp được khai thác ở trên (barycent là trung bình trọng số của baryenters của các phần đơn giản hơn của hình) nói chung không còn nữa. Thông thường, các giải pháp số gần đúng lặp lại phải được lấy. Họ thậm chí có thể không phải là duy nhất.

Các trung tâm bổ sung có thể được xác định cho các mục đích khác nhau. Hình tam giác có nhiều trung tâm khác nhau có thể khái quát (phần nào) thành đa giác: tâm của đường tròn, tâm của một số hình tròn cực đại, tâm của hình elip giới hạn diện tích tối thiểu và các hình khác. Bất kỳ bộ nào cũng có thể được đặt trong các "thân tàu" khác nhau, chẳng hạn như thân tàu lồi và tâm của các thân tàu thu được.

Lưu ý rằng nhiều "trung tâm" này không nhất thiết phải nằm trong phần bên trong của đa giác. (Tuy nhiên, bất kỳ trung tâm hợp lý nào của đa giác lồi sẽ nằm trong phần bên trong của nó.)

Cách tiếp cận và giải pháp đa dạng này cho thấy người ta nên cảnh giác với một thuật ngữ chung chung như "trung tâm hình học" hoặc chỉ là "trung tâm": nó có thể là bất cứ thứ gì.


Đối với cộng đồng: Một câu trả lời hay như thế này từ 'whuber' chỉ có thể được mong đợi cho một câu hỏi hay, vì sự quen thuộc của tôi với sở thích của anh ấy, do đó, mọi người có phiền khi bỏ phiếu cho câu hỏi không nếu bạn thấy nó thú vị;)
Nhà phát triển

Tôi thấy nó hữu ích trong một số trường hợp, mong muốn đôi khi đưa ra cho những người tiếp nhận khác như là động lực để trả lời. Tôi đánh dấu điều này tuy nhiên một câu trả lời mang tính xây dựng cho đến nay.
Nhà phát triển

Bạn có thể giải thích tại sao các khu vực vẫn được tìm thấy bằng cách sử dụng các sản phẩm nêm trên một quả cầu? Không phải khu vực tam giác hình cầu sẽ thích hợp hơn? Tài liệu tham khảo gần nhất (ngoài câu trả lời xuất sắc này!) Mà tôi đã tìm thấy là: jennessent.com/doads/Graphics_Shapes_Online.pdf - sử dụng các khu vực của hình tam giác hình cầu.
Jason Davies

@Jason Tôi tò mò: làm thế nào để bạn đề xuất sử dụng các khu vực tam giác hình cầu để tính toán barycenters của các tính năng hình cầu?
whuber

@whuber Đa giác hình cầu được phân rã thành các hình tam giác hình cầu, và barycenter của mỗi tam giác được tính bằng cách lấy trung bình tọa độ Cartesian của các đỉnh của nó. Tôi đang đề xuất rằng barycenter đa giác là trung bình có trọng số của các hình tam giác này, trong đó trọng số là diện tích tam giác hình cầu , không phải là diện tích phẳng như bạn đề xuất trong câu trả lời của bạn (giả sử tôi hiểu chính xác sản phẩm nêm).
Jason Davies
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.