Thuật toán tìm trọng tâm của tứ giác

Thế nếu tứ giác đó không lồi thì làm thế nào :thinking:

1 Like

thì phải xét từ từ chứ lị

The centroid of a non-self-intersecting closed polygon defined by n vertices (x0,y0), (x1,y1), …, (xn−1,yn−1) is the point (Cx, Cy), …

Chỉ cần là đa giác không tự cắt là áp dụng được công thức của Wiki rồi. Lồi hay lõm cũng được.

1 Like

Khi và chỉ khi A, B, C, D là chất điểm :slight_smile: còn khi trọng lực đã phân bố đều khắp thì không đúng. Ta sẽ liên tưởng đến diện tích hình được đường cong C (trơn hay không cũng được) bao kín, mà mỗi điểm lại có trọng số :slight_smile: Nó chỉ khác là giờ cả cái hình đều toàn là point mass.

Vậy với tam giác mà GA + GB + GC = (vector) 0 thì phải suy ra từ công thức đó mới phải.

1 Like

ok, mình giải ra rồi nhé, xem đây, hiện giờ mình chỉ xét đa giác lồi thôi, đa giác cắt được các bạn khác làm nhé…
thôi khỏi vẽ hình chơi tưởng tượng luôn.

Gọi O1,O2,O3,O4 lần lượt là trung điểm của các cạnh tứ giác ABCD.

=> Tứ giác O1O2O3O4 là hình bình hành (AE ok không ? nếu không mình sẽ chứng minh)

Gọi M là giao điểm hai đường chéo hình bình hành.

Ta có MO1=MO3 va MO2=MO4 (ok nhe)

Vậy suy ra vt(MO1)+vt(MO2)+vt(MO3)+vt(MO4)=======0

hix còn thiếu một tí


2 vt(MO1)= vt(MA)+vt(MB) (ok luon nhe)
2 vt(MO2)=vt(MB)+vt(MC)

=> vt(MA)+vt(MB)+vt(MC)+vt(MD)=2 * 0 =0

Vậy ==> Điểm M theo cách vẽ trên là trọng tâm của tứ giác ABCD

hehe, khỏe như bò kéo xe.
ACE chấm đúng cho em để finish cái topic này nhe…

Vấn đề là đây là một bài code chứ không phải bài toán hình =) và ct GA + GB + GC + … = (vt) 0 là sai :slight_smile:

1 Like

Đâu phải là hình bình hành đâu

Đường trung bình trong tam giác đó bạn (Hai đường trung bình của 2 tam giác có đáy chung)

Giải thuật ra rồi thì code mấy hồi bạn.:grinning:

Hay là mình tạo một topic có tiêu đề thế này : Nhập bốn điểm bằng con chuột lên màn hình Brower, Vẽ hình tứ giác và trọng tâm của nó" anh em làm chơi nhé?

Chương trình Calc III :smiley: (VN là môn giải tích 2) http://tutorial.math.lamar.edu/Classes/CalcIII/LineIntegralsIntro.aspx

1 Like

Quái thiệt @@ công thức tính thì mình có viết ở trên, nó đơn giản chứ có j đâu phức tạp, chưa kể có link, bàn luận chứng minh chi tùm lum @@ mà nhìn lại nó chỉ là công thức để tính chứ cũng chả phải thuật toán gì ghê gớm @@

Vậy bạn chứng minh xem sao. Toán không có nói trống không vậy được, mà sao chúng tôi phải tin bạn?

[spoiler]Bởi vì có hai ba người đang dùng GA + GB + GC + GD, nhưng đó là một sự tổng quát hóa sai lầm.[/spoiler]

2 Likes

đây là công thức tính trọng tâm của một mặt cắt ngang hình học bất kỳ, ở đây trường hợp cụ thể là tứ giác nên đơn giản hơn rất nhiều, đây là 1 nội dung nhỏ trong phần tính momen quán tính của bộ môn sức bền vật liệu của ngành xây dựng, vì trước đây mình học xây dựng nên biết công thức này, còn muốn chứng minh bạn tìm tài liệu sức bền để xem, bạn có thể xem lại công thức ở slide 23/41 https://www.slideshare.net/lntgiang16/chng-4-c-trng-hnh-hc-ca-mt-ct-ngang

1 Like

À nó ntn (sorry :smiley: ): chia 1 hình S đc bao bởi đường cong kín C bằng đường cong cắt C tại đúng hai điểm, tạo thành hai hình A và B. Ct gốc là:
xS = (S(A)xA + S(B)xB) / (S(A) + S(B))
= (S_A(xdA) / S_A(dA) * S_A(dA) + S_B(xdA) / S_B(dA) * S_B(dA)) / S(S) (công thức)
= (S_A(xdA) + S_B(xdA)) / S(S) (do hình S gồm hình A và B)
= S_S(xdA) / S(S) :slight_smile: (như trên)

Nếu cắt nhau tại 3, 4, … điểm thì ta chia thành 3, 4, … phần.

Quay lại tứ giác ABCD ta tính S(ABD) = 1/2*|xAyB + xByD + xDyA - xByA - xDyB - xAyD| và tương tự cho S(ACD).

1 Like

công thức thì đơn giản rồi, chủ yếu là giải quyết thì bài toán thớt đưa ra. Mình có nói ở trên rồi, tuy nhiên nếu mở rộng bài toán tìm trọng tâm cho một đa giác có n đỉnh bất kỳ thì sẽ rất hay và không dễ để giải tổng quát trong lập trình.

Cái khó là tính con tích phân S(x dA) và S(y dA) ấy. Để tính trong trường hợp tổng quát thì ta tham số hóa đường cong kín C và dùng Green để đổi nó qua S_C(x(t)dy) và S_C(y(t)dx). Thu được ct thì sẽ viết code dựa trên đó luôn.

mấy hình lập phương có trọng tâm ko nhỉ ? hay chỉ có mấy hình 2D mới có trọng tâm ?

Có bảng công thức cho hình đồng chất và có độ dày đồng nhất đó bạn :slight_smile:

1 Like

không nhất thiết phải tính tích phân này, với đa giác n đỉnh thì có n - 2 tam giác, ta biết được tọa độ của n đỉnh, dễ dàng tính được trọng tâm và diện tích của n - 2 tam giác này, từ đó ráp công thức tính ra thôi.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?