2017-01-13 107 views
1

我有兩個x,y對在邊界框內創建一條直線。計算邊界框中的交點

coord2 = -30, 300

邊框是x0x500y0y400 enter image description here

我想其中線相交的邊界創建一個對象,它可以告訴我的座標框。

Intercept.new(bounding_box, coord1, coord2).call!返回攔截點[x,y]

我相信我需要使用y = mx + b,但我有麻煩書面方式的對象,可以採取這兩個座標因素邊框,並告訴我在哪裏交點發生。任何人都可以拍攝並幫我在這裏?

編輯不是評論中鏈接問題的重複。這個問題有一個常數,B點總是在矩形的中心。

+0

如果一條直線與'方塊'相交,則會有兩個交點,不是?另外爲什麼你的Y軸倒置? –

+1

@ sagarpandya82它倒過來了,因爲它是如何使用圖像程序使用'x,y'。它並不影響'y = mx + b'的工作方式。 線條是有限的,只與邊界框的一部分相交。 – theartofbeing

+0

你有什麼嘗試?你是否用https://github.com/DanielVartanov/ruby-geometry做了什麼,或者你只是要求我們爲你編碼? – OneNeptune

回答

1

你正處於利用y = mx + b概念的正確軌道上,並且需要一些進一步的線性代數來完全解決問題。然而,你說你只是在尋找從哪裏開始接近這個特定問題的方向。

似乎有人在發展與您的鬥爭相關的遊戲時遇到了與彈丸交叉點相似的問題。這是他的博客文章:http://factore.ca/blog/166-how-to-calculate-the-point-of-intersection-between-a-line-and-a-bounding-box

下面是他的紅寶石具體解決他的問題的鏈接:https://github.com/adriand/intercept-calculator/blob/master/intercept_math.rb

希望這有助於!

+0

哇,這正是我所需要的。 +10在紅寶石。謝謝! – theartofbeing