2017-06-14 56 views
-1

我目前正在研究和編碼我的理論來模擬場景。沿着給定標題,起點和點之間的距離獲取點

我需要一種方法來增量查找給定標題上的點(線和正x軸之間的角度)給定標題,起點和點之間的距離。新的觀點應該在標題的方向上。我在某種程度上遇到了困難,我該如何去做這件事。

有足夠的時間我可以自己想出一個辦法,但考慮到提高我的編碼技能並不是我在這裏的最終結果,我寧願花更多的時間試驗我的理論,我想知道是否有人能幫我找到一個辦法。我正在使用C,因此C中的解決方案將是首選,而不是使用其他語言提供的庫函數的解決方案。

+0

什麼問題?這聽起來像是觸發問題,而不是編碼問題。 – BurnsBA

+0

我有一個點(x,y)。我有一個航向角A.我想從點(x,y)沿着航向A生成更多點的座標。我被困在如何用C. – GradStudent7902

+0

'x^2 + y^2 = r^2'中的高效代碼來實現這個,角度是'θ= tan^-1(y/x)'。然後,對於整數x,連續點是'(x *rcosθ,x *rsinθ)'。 – BurnsBA

回答

0

一種解決方案是在方向上產生一個單位矢量要

例如,讓我們看看45度,單位矢量將是 < 1/SQRT(2),1/SQRT(2) >。這個距離將是1,因爲它是一個單位矢量,所以你可以按照你想要的距離按比例縮放它。所以可以說你想讓每個點都是一個單位的1/3,那麼你只需乘以單位矢量,並得到1 /(3sqrt(2)),1 /(3sqrt(2))>然後你就可以只是做一個循環。所以如果你想在這個方向10點,它將只是

unitvector = calculateUnitVector() 
unitvector *= distanceBetweenPoints 
for(i = 0 ; i < 10; i++){ 
    drawPoint(startPoint + unitVector * i) 
} 

我希望這可以幫助。

+0

謝謝。從編碼角度看,這當然有助於更好地形象化問題。 – GradStudent7902

+0

如果你願意,我可以寫出更多的代碼給你,但是這種策略應該能讓你得到你想要的。 –

+2

謝謝你,但那對我和你都很好。我會嘗試自己,並再次問我是否失敗。 – GradStudent7902