簡體   English   中英

如何在 2D 平面上平衡重量

[英]How to balance weights on a 2D plane

我正在從事一個小型 Unity 愛好項目,我正在嘗試為 3D 空間中的宇宙飛船編程推進器。 推進器正在工作,但我在將推力中心與質心匹配時遇到了一些問題。 我希望推進器根據相對於運動方向的 position 自動調整其強度。

更簡單地看待問題時,我遇到了這種情況:

我在隨機位置的 2D 平面上放置了隨機數量的權重。 每個重物的質量是未知的,所有重物的質心必須在 0,0。

如何計算每個重量的質量?

重量放置示例

到目前為止,我將問題可視化為 2D 空間,其中必須通過增加權重的質量將質心“拉”到 0,0。 但我無法找到一種算法來准確地做到這一點,並且重量之間的質量增量最少。

你所描述的問題是不受約束的。 以 m1、m2 等為質量,以 (x1, y1)、(x2, y2) 等為坐標:

m1 * x1 + m2 * x2 + m3 * x3 + m4 * x4 = 0
m1 * y1 + m2 * y2 + m3 * y3 + m4 * y4 = 0

將 m3 和 m4 設置為零,這很容易。

您有四個自由變量(4 個質量)來匹配兩個方程。 唯一的復雜因素是質量可能必須對所有值都是正數。

在您的情況下解決此問題的最佳方法是選擇默認質量,然后嘗試每對質量(m1,m2),(m1,m3),(m1,m4),(m2,m3)等,在其他質量設置為默認質量的情況下求解方程。

因此,如果默認質量為 5kg,則設置 m3 = 5kg 和 m4 = 5kg,求解 m1 和 m2,例如,m1 = 3kg 和 m2 = 6kg。 對所有質量對重復此操作。 選擇與默認質量偏差最小且 go 為負數的對。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM