Thế nếu tứ giác đó không lồi thì làm thế nào
Thuật toán tìm trọng tâm của tứ giác
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.
Khi và chỉ khi A, B, C, D là chất điểm 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ố
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.
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í
mà
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
Đâ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.
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 (VN là môn giải tích 2) http://tutorial.math.lamar.edu/Classes/CalcIII/LineIntegralsIntro.aspx
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]
đâ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
À nó ntn (sorry ): 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) (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).
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
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.