2010-01-30 64 views
0

http://i45.tinypic.com/2vlv384.jpg http://i45.tinypic.com/2vlv384.jpg3D:寫功能找到一個三角形

在三維空間的配置中,給定的P1和P2,和連接端分別終止與長度L1和L2的兩個鏈接,LINK1開始於P1。編寫一個函數,用於查找將第二條鏈接結束於點P1的鏈接配置。我不知道從哪裏開始......到底什麼是「鏈接配置」(作爲輸出):一個向量(如2i -3j + 5k)?或者聯合點的點座標或什麼...?

我的想法是,有3D解決方案,以及2個解決方案在2D的無限多,我試圖給他們一個爲3D的第一步。給定P1(x1,y1,z1),P2(x2,y2,z2),L1和L2,所有我能想到的是:轉換爲新的座標系(不知道如何),使P1變成(0,0,0)並且P2變成(d,0,0),其中d =距離(P1,P2)。現在我們把它減少到一個二維問題,我們需要在新的座標系中找到P3(x,y,0),使得P3是(0,0,0)中的L1,而(d,0,0)中的L2 )。

我認爲,我們可以找到P3的正好有兩個解決方案(X3,Y3 +/-)爲我們修復Z到0。然後,我需要將其轉換回原來的座標系統......和Z座標應該踢...但我不知道如何。

+1

聲音像家庭作業 – 2010-01-31 00:46:38

+0

那麼爲什麼不給出一個2D解決方案或更好的例子,然後我們可以幫你瞭解如何做3D類似的東西。我的想法是讓一個非歐幾里得2D的答案,但部分「查找配置」我不能肯定的。那是剛剛從P1移動L1至P2? – 2010-01-31 00:50:00

+0

嗨,詹姆斯,謝謝。 鑑於P1(X1,Y1,Z1),P2(X2,Y2,Z2),L1和L2,所有我能想到的是:轉換到新的座標系(不知道如何雖然),使得P1爲(0 ,0,0)並且P2變成(d,0,0),其中d =距離(P1,P2)。 現在我們將它降低到一個二維問題,我們需要在新的座標系中找到P3(x,y,0),使得P3是(0,0,0)中的L1,而(d,0 ,0)。我認爲當我們將z固定爲0時,我們可以找到P3(x3,+/- y3)的兩個解。然後,我需要將它轉換回原始座標系...並且z座標應該踢入。但我不知道如何。 – looktt 2010-01-31 01:05:28

回答

1

聽起來你正在尋找一個點P這是距離L1距離P1和距離L2 P2路程。

在n維的該解決方案是n維球面中心P1半徑L1和n球體中心P2半徑L2的交點。

下面是在3D中解決這個問題: http://mathworld.wolfram.com/Sphere-SphereIntersection.html

在3D中,有將是1種溶液(當球剛好接觸),形成的圓(在P1和P2之間的線中心解決方案),或者沒有解決方案(當L1 + L2小於P1和P2之間的距離時)