我有两个x,y
对在边界框内创建一条线。
coord1 = 75, 180
coord2 = -30, 300
我想创建一个对象,它可以告诉我线与边界框相交的坐标。
即。
Intercept.new(bounding_box, coord1, coord2).call!
返回拦截点[x,y]
我相信我需要使用y = mx + b
,但我在编写可以采用这两个坐标的对象时遇到问题,请考虑边界框,并告诉我交叉点发生的位置。任何人都可以在这里帮助我吗?
编辑与评论中关联的问题不重复。那个问题有一个常数,即B点始终位于矩形的中心。
答案 0 :(得分: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
希望这有帮助!