【问题标题】:Compute intersection between Line and Arc [duplicate]计算线和弧之间的交点[重复]
【发布时间】:2019-12-26 15:33:43
【问题描述】:

我正在使用 sdl2/sdl_gfx 在 c 中实现一个小游戏,以完成一项任务,您需要通过将小光标移动到白色圆圈下方(它围绕圆圈移动)来避免弧线(在中心)。

我的问题很简单:检测光标是否与圆弧相交的有效实现是什么?

对于每个圆弧都有:中心点(x,y),起点和终点半径,半径。 以下是哪些论点:

int arcRGBA(SDL_Renderer *renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)

对于我的光标(圆圈下的小三角形),我有:三角形的坐标。

int filledTrigonRGBA(SDL_Renderer *renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint8 r, Uint8 g, Uint8 b, Uint8 a)

有了这些信息,我考虑使用三角形的线来检测它是否与弧相交。但我不知道如何用它所涉及的数学来实现它。

注意:弧线正在移动,并且它们的坐标每帧都会更新。我只需要知道检测交叉点的实现。

【问题讨论】:

  • 你说你有圆弧中心点坐标。所以它们不是同心的?我问是因为对我来说(可能太近视了)看起来弧在小白盘上是同心的。
  • 是的,它们都有相同的中心点。屏幕中间
  • 你能计算出圆弧中心到光标的距离吗?如果它非常接近圆弧的半径,这意味着什么?
  • 但是坐标是多余的,这似乎表明你没有正确地理解目标——或者没有正确和足够详细地解释它们,这似乎更有可能。
  • @Hazel: 或arcRGBA 需要中心点,即使所有弧线都具有相同的中心点。

标签: c trigonometry sdl-2 intersection


【解决方案1】:

解决了 !!!!!!!

This topic

【讨论】:

  • 嗯,真正的目标是找到 1) 光标是否在弧形扇区(饼形楔形)或 2) 三角形光标是否与弧相交(外缘)?这个答案确实解决了#1,但提出的问题“计算直线和弧之间的交点”看起来像#2,在这里没有解决。
  • 当比较与圆弧中心点的距离相同且圆弧半径相结合时会发生这种情况。
  • @ScottHunter 完全正确
猜你喜欢
  • 2015-07-12
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
相关资源
最近更新 更多